在學多執行緒的時候發現的問題
當使用idea時
我這個主執行緒和子執行緒中間看不出來交叉
不管多少次運行的結果都是主執行緒先運行,然后是子執行緒
我把程式考到editplus上編譯運行發現沒有問題,兩執行緒之間會有交叉
就是idea上不行。。
希望有大神可以解答!!
下面是程式:
/*
*
* @auther Zebra
* @create 2020-02-02-0:48
*/
class HelloThread extends Thread
{
@Override
public void run()
{
for(int i = 0; i < 100; i++)
if(i%2 == 0)
{
System.out.println(Thread.currentThread().getName() + ":" + i);
}
}
public HelloThread(String name)
{
super (name);
}
}
public class ThreadMethodTest
{
public static void main(String[] args)
{
HelloThread h1 = new HelloThread("Thread");
//h1.setName("執行緒一");
h1.start();
//給主執行緒命名
Thread.currentThread().setName("主執行緒");
for(int i = 0; i < 100; i++)
if(i%2 == 0)
{
System.out.println(Thread.currentThread().getName() + ":" + i);
}
}
uj5u.com熱心網友回復:
經過測驗發現,當把主執行緒的回圈次數設到5000時,開始有交叉了,但是次執行緒是一下走完的。是不是因為CPU多核跑的問題?uj5u.com熱心網友回復:
在for回圈中加入Thread.sleep(1000);,讓這個執行緒隔一秒執行以下,這樣你就可以看出明顯的執行緒交叉uj5u.com熱心網友回復:
為什么在editplus里能看出來交叉,idea里反而看不見了啊uj5u.com熱心網友回復:
而且當我將主執行緒的優先級設為最低,子執行緒的優先級設為最高時依舊原樣。。。uj5u.com熱心網友回復:
是idea的問題嗎
uj5u.com熱心網友回復:
我的idea也出現這樣的問題了,一直是主執行緒先輸出,加到2000才看到交叉,你是怎么解決的轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/183098.html
標籤:Java SE
上一篇:2020-10-20:執行緒池如何保證核心執行緒不被銷毀?
下一篇:三太子敖丙的留言板
