什么是线程
在讨论什么是线程前有必要先说下什么是进程,因为线程是进程中的一个实体,线程本身是不会独立存在的。进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程的一个执行路径,一个进程至少有一个线程,进程中的多个线程是共享进程的资源的。
如何启动新的进程
①建立Runnable对象(线程的任务)
Runnable threejob = new myRunnable();
②建立Trhead对象(执行人工)并赋值Runnable任务
Thread thread = new Thread(threejob);
③启动Thread
thread.start();
④实现Runnable接口来建立thread运行的任务,Runnable只有一个方法需要实现,就是run方法,
class myRunnable implements Runnable {
@Override
public void run() {
go();
}
public void go() {
System.out.println("top the stack ");
}
}
新建线程的几种状态
①新建状态
②可执行状态:当你启动线程的时候,他就会变成可执行的状态,只要轮到他就可以开始,该线程已经布置好执行空间
③执行中:这靠Java虚拟机的线程调度机制来决定,只能给Java虚拟机的调度给点意见,但无法强迫线程从可执行状态变成执行中
注意:一旦线程进入可执行状态,他会在可执行状态中与执行中状态来来去去,同时也会有另外一种状态:暂时不可执行(堵塞状态)
线程调度器
线程调度器会决定哪个线程从等待状态中被挑出来运行,以及何时把哪个线程送回等待执行的状态
看下面例子:
package Java;
class myRunnable implements Runnable {
@Override
public void run() {
go();
}
public void go() {
System.out.println("top the stack ");
}
}
public class ThreadTester {
public static void main(String[] agrs) {
Runnable threejob = new myRunnable();
Thread thread = new Thread(threejob);
thread.start();
System.out.println("back the main");
}
}
输出顺序是随机的

让进程小睡一会
确保进程能够有机会的执行的最好方式是让他们周期性的去睡一下,只要调用sleep()方法,传入一毫秒指定的时间即可,但是这个方法会抛出异常InterruptedException,
try {
Thread.sleep(2000);
}catch(InterruptedException ex){
ex.printStackTrace();
}
版权声明:本文为weixin_44706647原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。