JavaSE多线程之线程种类

JavaSE多线程之线程种类

1.线程控制之休眠线程

A:线程休眠:	public static void sleep(long millis) 线程休眠
B:案例演示:	线程休眠

在这里插入图片描述

2.线程控制之加入线程

A:加入线程:	public final void join()
	意思就是: 等待该线程执行完毕了以后,其他线程才能再次执行
	注意事项: 在线程启动之后,在调用方法
B:案例演示:	加入线程
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200605074651406.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0lUemhhemhhc3Nj,size_16,color_FFFFFF,t_70)

3.线程控制之礼让线程

A:礼让线程:	public static void yield():	暂停当前正在执行的线程对象,并执行其他线程。 
B:案例演示:	礼让线程
按照我们的想法,这个礼让应该是一个线程执行一次,但是通过我们的测试,效果好像不太明显.
那是为什么呢?
这个礼让是要暂停当前正在执行的线程,这个暂停的时间是相当短的,如果在这个线程暂停完毕以后,其他的线程还没有
抢占到CPU的执行权,那么这个时候这个线程应该再次和其他线程抢占CPU的执行权. 

在这里插入图片描述

4.线程控制之守护线程

A:守护线程:	public final void setDaemon(boolean on):
	将该线程标记为守护线程或用户线程。当正在运行的线程都是守护线程时,Java 虚拟机退出。 
	该方法必须在启动线程前调用。 
B:案例演示:	守护线程 

在这里插入图片描述

5.线程控制之中断线程

 A:中断线程
	public final void stop():		停止线程的运行
	public void interrupt():		中断线程(这个翻译不太好),查看API可得当线程调用wait(),sleep(long time)方法的时候处于阻塞状态,可以通过这个方法清除阻塞

在这里插入图片描述

6.多线程实现方式1

A:多线程程序实现的方式1
		a:继承Thread类
		b:步骤及代码演示
		c:几个小问题:
			启动线程使用的是那个方法
			线程能不能多次启动
			run()和start()方法的区别

在这里插入图片描述

6.多线程程序实现的方式2

A:实现Runnable接口  这种方式扩展性强 实现一个接口 还可以再去继承其他类
	a:如何获取线程名称
	b:如何给线程设置名称
	c:实现接口方式的好处
		可以避免由于Java单继承带来的局限性。
B:案例演示:	多线程程序实现的方式2

在这里插入图片描述

7.多线程程序实现的方式3

A:实现 Callable 接口。 相较于实现 Runnable 接口的方式,方法可以有返回值,并且可以抛出异常。
  
    B:执行 Callable 方式,需要 FutureTask 实现类的支持,用于接收运算结果。  FutureTask 是  Future 接口的实现类

C:实现步骤
	1.创建一个类实现Callable 接口
	2.创建一个FutureTask类将Callable接口的子类对象作为参数传进去
	3.创建Thread类,将FutureTask对象作为参数传进去
	4.开启线程

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值