Java学习笔记----创建线程、sleep()、

什么是线程

在讨论什么是线程前有必要先说下什么是进程,因为线程是进程中的一个实体,线程本身是不会独立存在的。进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程的一个执行路径,一个进程至少有一个线程,进程中的多个线程是共享进程的资源的。

如何启动新的进程

①建立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版权协议,转载请附上原文出处链接和本声明。