java的多线程操作:
虽然每次结果不同,但是第一个空格之前必然有 0 1 2 3 4 这四个数字,这是因为第一个空格出现,意味着第一个线程执行完毕,必然会打印这四个数字。又因为线程并发执行,所以后面两个线程个别数字可能会提前打印,这就导致了答案有很多。
1 package test.campus; 2 import java.util.Scanner; 3 public class Main2 { 4 public static void main(String[] args) { 5 Thread[] ths=new Thread[3]; 6 for(int i=0;i<3;i++){ 7 ths[i]=new Thread(new Runnable(){ 8 @Override 9 public void run(){ 10 for(int j=0;j<5;j++){ 11 System.out.print(j); 12 } 13 System.out.print(" "); 14 } 15 16 }); 17 } 18 for(Thread th:ths){ 19 th.start(); 20 } 21 22 } 23 24 }
每次的执行结果都一样:
虽然每次结果不同,但是第一个空格之前必然有 0 1 2 3 4 这四个数字,这是因为第一个空格出现,意味着第一个线程执行完毕,必然会打印这四个数字。又因为线程并发执行,所以后面两个线程个别数字可能会提前打印,这就导致了答案有很多。