JavaSE重点知识点总结(多线程)

第九章 多线程

1.多线程的三种实现方式

	1.继承Thread
	2.实现Runnable
	3.实现Callable

2.多线程的生命周期

![请添加图片描述](https://img-blog.csdnimg.cn/c76d8129be1e445abe0eaa2f944336e3.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBATXVzdGFuZy5NcQ==,size_20,color_FFFFFF,t_70,g_se,x_16)

3.线程的调度

	1.抢占式(java采用的)
		优先级决定抢到CPU时间片的概率
	2.均分式	 (有一些编程语言)
		CPU时间片的时间长度一样,平均分配
	3.线程调度方法
		3.1 实例方法
			setPriority(int n)设置线程优先级
			getPriority(int n)获取线程优先级
			MAX_PRIORITY=10
			MIN_PRIORITY=1
			NORM_PRIORITY=5
		3.2 静态方法
			yield()让位方法
			不会造成阻塞,暂停当前的正在执行的线程对象,让给其他线程来使用
		3.3 实例方法
			join () 合并线程
			主方法中,t1.join()表示,把t1合并到主线程中,主线程阻塞,等待t1线程执行完,主线程继续。			

4.线程安全(重点五颗星)

	1.什么时候数据在多线程并发的情况下不安全
		第一:多线程并发
		第二:有共享数据
		第三:共享数据有修改的行为
	2.如何解决线程安全问题
		线程同步机制:也就是线程排队
		第一:尽量使用局部变量代替成员变量
		第二:如果必须使用成员变量,那么推荐创建多个对象(一个 线程一个对象,数据就不共享了)
		第三:线程同步机制

5.定时器

请添加图片描述

6.守护线程

	方法:设置setDemo();
	如果t1是守护线程,那么只要主线程结束,那么哪怕t1线程是死循环输出,也会停止。		
7.wait方法和notify方法
	    T线程在o对象上活动
	    那么当o.wait()的时候,会使在o对象上活动的线程进入等待状态
	    直至o.notify()来唤醒

7.生产者和消费者

请添加图片描述

请添加图片描述

8.死锁

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值