怎样让一个线程高于主方法的优先级 JAVA

JAVA写的代码。在主方法中,调用了一个线程的类,例如
public static void main(String[] args) {
……
controlFileFetch.start();
System.out.println("线程结束");

理想中的结果应该是线程先结束,再执行System.out.println("线程结束");
但是实际结果却是先执行了System.out.println("线程结束");线程后结束。
试过sleep,sleep会让主方法也停止,很头疼。想问下高手有没有其它方法
试过标志变量,它会提前判断

public final void setPriority(int newPriority)
更改线程的优先级。

主线程的优先级是 5
将线程的优先级设为 Thread.MAX_PRIORITY 就可以了 max的优先级为10
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-07-19
controlFileFetch.start();
controlFileFetch.join();
System.out.println("线程结束");
第2个回答  2010-07-17
你可以设置一个标志变量,在线程执行完毕时对其进行修改,将其作为输出“线程结束”的判断条件

如何调整线程优先级
调整线程优先级的方法如下:优先系数由系统内核决定,不可更改。nice值可以手动更改,范围是负20到19。优先级的值越低,优先级越高,优先级的值越高,优先级越低。若想调整成最高优先级的话,则将nice值设为负20,想调整成最低优先级的话,则将nice值设为19。

Java中用到的线程调度算法是什么?
Java中的线程调度算法主要是基于优先级的抢占式调度。这种调度算法确保了高优先级的线程总是优先于低优先级的线程执行,同时也允许相同优先级的线程按照先进先出(FIFO)的顺序执行。在Java中,每个线程都有一个优先级,范围从1到10,其中1表示最低优先级,10表示最高优先级。当一个线程被创建时,它的...

java 里面,主线程的优先级可以设置吗?
Thread类的setPriority(int level)方法设置线程的优先级。优先级别从1到10,1是最不重要的,10是最重要的。不设置优先级将是默认值5.

java中怎么设置main()的优先级数,怎么返回main()的优先级数?
你可以直接在main方法里面通过Class的一个静态方法设置它的优先级数就行了。不过最好不要去设置这些东西。因为谁也不能向你保证优先级高的一定会先执行。只是说大部分会优先执行而已。

JAVA线程的题目 求大神解答
1、线程的实现方式有两种一种是继承Thread一种是实现Runable。2、优先级设置和获取的示例如下:3、执行结果 线程根据优先级执行并不根据调用代码的先后。

在主程序中创建2个线程(用子类),将其中一个线程的优先级设为10,另
让优先级为10的线程打印5次“线程1正在运行”,优先级为6的线程打印5次“线程2正在运行”... 在主程序中创建2个线程(用子类),将其中一个线程的优先级设为10,另一个线程的优先级设为6。让优先级为10的线程打印5次“线程1正在运行”,优先级为6的线程打印5次“线程2正在运行” 展开  我来答 ...

java 如何方法限定一个线程使用?
public synchronized void myMethod(){ \/\/方法执行的代码 } 这里我们使用synchronized关键字将myMethod()方法修饰。这将使该方法只能在一个线程内被执行。当一个线程在执行该方法时,其他线程将会被阻塞,直到该线程执行完成,其他线程才能继续执行该方法。需要注意的是,这只能限制方法在一个线程内执行,...

java中主线程和子线程那个优先级高?
如果存在主线程和子线程争抢cpu执行权的话,看运气,谁抢到就让谁执行。其实设置了优先级,也无法保障线程的执行次序。只不过,优先级高的线程获取CPU资源的概率较大,优先级低的并非没机会执行。线程的优先级用1-10之间的整数表示,数值越大优先级越高,默认的优先级为5。

java 线程中优先级究竟分几级?
这要看JVM,不同的JVM有不同的登记。有5级和10级之分,但你设置可以设0-9之间的整数,如果JVM按5级分,9和8就看做是同一级别。

java,为什么其他线程总是在main线程后执行?
一个java程序从main开始之后,进程启动,为整个程序提供各种资源,而此时将启动一个线程,这个线程就是主线程,它将调度资源,进行具体的操作。Thread、Runnable的开启的线程是主线程下的子线程,是父子关系,此时该java程序即为多线程的,这些线程共同进行资源的调度和执行。java中main方法启动的是一个进程...

相似回答