[英]Why threads are executing sequentially?
Q.1我試圖同時運行兩個線程,但這里是按順序打印值。 例如,它再次打印0然后再打印0然后再打印1.如果線程同時運行,則不應打印0 0然后打印1 1。
Q.2輸出為10,11,然后是0,1,0,1。當它首先打印10和11時。 即使程序控制首先進入t1.start()
和t2.start()
,這是否意味着線程t1和t2尚未啟動。
public class Main implements Runnable
{
int x;
public void run()
{
for(int i = 0; i < 2; i++)
{
System.out.println(x++);
}
}
public static void main(String[] args)
{
Thread t1 = new Thread(new Main());
Thread t2 = new Thread(new Main());
t1.start();
t2.start();
int y = 10;
for(int i = 0; i < 2; i++)
{
System.out.println(y++);
}
}
}
的x
由線程使用的變量是不一樣的x
在所述內打印變量main
方法。
由於在線程中執行的代碼太短,第一個線程將在第二個線程啟動時完成
此外,通過這個簡單的示例,您的代碼也會受到輸出緩沖區的影響。
如果要查看並發操作,將sleep()方法放在run方法中的某個位置應該會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.