同一个进程中的3个线程是并发执行的,我们通过输出的时间点现象来看,线程的并发执行
最近突然越来感觉写博客似乎是一种很怡情的事情,可能是无聊,可能是心里面对现状的不满,希望通过学习改变自己,也只是希望,好了我们来进入正题。
休眠问题:
一句话 :Thread.sleep();
我们知道线程在操作系统中执行时并发执行的,那么我们来做个试验
上面的这个图片什么意思呢,我们可以看到71,出现了3次,而且我可以告诉 你我在控制台中看到的是三个71几乎是同时出现的,和前面的3个70之间隔了一秒
,我们来看程序:
package com.epoint.wdgtest;
public class WdgTest
{
//用休眠来看程序的并发执行
public static void main(String [] args){
Thread mt1=new myThread();
Thread mt2=new myThread();
Thread mt3=new myThread();
mt1.start();
mt2.start();
mt3.start();
}
}
class myThread extends Thread{
public void run(){
for(int i=0;i<2000;i++){
try {
Thread.sleep(1000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(this.currentThread().getName()+"----"+i);
}
}
}
三个71几乎同时出现意味着三个线程几乎同执行了输出语句,也就是说上面的休眠是几乎同时结束的,可见3个实现在同一个时间点进行了休眠,所以说线程之间是并发执行的。