「java终止一个打印任务」怎么终止打印任务

博主:adminadmin 2022-12-16 17:36:08 63

本篇文章给大家谈谈java终止一个打印任务,以及怎么终止打印任务对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中终止程序的执行

方案操作如下:

(1)让程序在一个单独的线程中运行,然后在终止时,可以用线程的终止方法来结束它。

(2)退出Java程序时尽量不要使用java.lang.System的exit方法。Exit 方法可以终止JVM,从而终止程序,但如果同时运行了另一个Java程序,使用exit方法就会让该程序也关闭,这显然不是希望看到的情况!!!!

要退出Java程序,可以使用destory()退出一个独立运行的过程。对于多线程程序,必须要关闭各个非守护线程。

只有在程序非正常退出时,才使用exit方法退出程序

求教高手:java中如何暂停一个线程中的任务,在以后的可以恢复之前任务的执行。

可以用以下几种方法:

interrupt():中断线程

stop():强迫线程停止执行。用 Thread.stop 来终止线程将释放它已经锁定的所有监视器(作为沿堆栈向上传播的未检查 ThreadDeath 异常的一个自然后果)。如果以前受这些监视器保护的任何对象都处于一种不一致的状态,则损坏的对象将对其他线程可见,这有可能导致任意的行为。

yield()只是使当前线程重新回到可执行状态,所以执行yield()的线程有可能在进入到可执行状态后马上又被执行。yield()只能使同优先级的线程有执行的机会。----这句是重点

3.书上说yelid()是礼让,是让当前执行线程停下来给别的线程资源, 又说没有任何机制保证会这样。----------没有任何机制保证执行yield()的线程一定会把资源让给其它线程。打个比方:两个人抢东西,A抢到了B没有,再把东西放回去重抢,说不定还是A抢到B没有。没有任何机制保证放回去后B一定能抢到

sleep方法使线程睡眠,但是到一定毫秒数时会自动到cpu中等待

wait方法使线程等待,但是不会自动到cpu中等待,要通过notify或者notifyall方法进行唤醒。

以上是让线程等待的方法,你可以选择适合你程序的方法。

”如何让java打印n次后停止“

这= =

你说的N是可以设置固定值的吧

不然就是死循环了

例如打印10次

for循环里面int i=1,i=n;i++

就可以在你设置的N那个值次后,停止

java怎么强行终止程序

在java程序中,可以使用java.lang.System的exit方法来终止程序的执行,

12345678

public static void main(String[] args) { System.out.println("开始进入程序..."); //do something System.out.println("程序准备退出了!"); System.exit(0); //下面这句话将不会打印出来 System.out.println("程序已经退出了!");}

但是使用exit方法的本质是终止了JVM的运行,如果同时运行了另外一个程序,使用exit方法同样也会使该程序也终止,要避免此种情况可以使用interrupt()来中断退出一个独立运行的过程。对于多线程程序,必须要关闭各个非守护线程。

1234567891011121314151617181920212223

public static void main(String[] args) { System.out.println("开始进入程序..."); //do something new Thread(){ public void run() { while (true) { System.out.println("我是另外的线程..."); try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }.start(); //获取man线程 Thread main = Thread.currentThread(); System.out.println(main.getName()); main.interrupt(); System.out.println("main线程已经退出了,但是不影响其他线程运行!"); }

只有在程序非正常退出时,才使用exit方法退出程序。

用java代码 道怎样停止一个运行的job,我发现没法停掉它.只能把整个进程退出才行.

把job放到一个线程中,用一个成员变量控制线程的运行

public class MyThead implements Runnable{

private boolean flag = false;

public void run() {

//while(){ 反复执行的程序

if(flag) //flag是开关,更改flag状态控制线程是否运行

return;

// }

}

java 多线程并发请求数据,只要有一条线程获得数据,则其他线程终止运行,并打印出获得的数据

这边我写了一个例子,两个线程同时获取随机数,当获取的值为68的时候则停止所有进程。

这是目录结构:MyThreadOne和MyThreadTwo是两个线程,TestMain是主函数,MyThread继承Thread类。

MyThread.java

package com.xsx.test;

public class MyThread extends Thread {

public void stopThread() {}

}

MyThreadOne.java

package com.xsx.test;

import java.util.Random;

public class MyThreadOne extends MyThread{

private boolean isOK = true;

Random random = new Random();//演示

public void stopThread() {

this.isOK = false;

}

@Override

public void run() {

while(isOK) {

int x = random.nextInt(10000);

System.out.println("Thread One: " + x);

if(x == 68) {

TestMain.stopAll();

System.out.println("My Value is " + x);

break;

}

}

//这边你结合自己的逻辑来写,总之,是通过isOK来控制线程的

}

}

MyThreadTwo.java

package com.xsx.test;

import java.util.Random;

public class MyThreadTwo extends MyThread {

private boolean isOK = true;

Random random = new Random();//演示

public void stopThread() {

this.isOK = false;

}

@Override

public void run() {

while(isOK) {

int x = random.nextInt(10000);

System.out.println("Thread Two: " + x);

if(x == 68) {

TestMain.stopAll();

System.out.println("My Value is " + x);

break;

}

}

}

}

TestMain.java

package com.xsx.test;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

public class TestMain {

public static MapString, MyThread threadPool = new HashMapString, MyThread();//定义一个线程池

/***

 * 终止所有线程

 */

public static void stopAll() {

IteratorMyThread threads = threadPool.values().iterator();

while(threads.hasNext()) {

threads.next().stopThread();

}

threadPool.clear();

}

public static void main(String[] args) {

//实例化两个线程获取到随机数为68时就停止进程,并输出

MyThread thread1 = new MyThreadOne();//实例化线程1

MyThread thread2 = new MyThreadTwo();//实例化线程2

threadPool.put("thread1", thread1);//将线程1放入线程池中

threadPool.put("thread2", thread2);//将线程2放入线程池中

thread1.start();//运行

thread2.start();

}

}

项目已经打包上传

关于java终止一个打印任务和怎么终止打印任务的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-16,除非注明,否则均为首码项目网原创文章,转载请注明出处。