鱼C论坛

 找回密码
 立即注册
查看: 3260|回复: 4

[学习笔记] Java多线程01

[复制链接]
发表于 2017-6-9 22:14:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
共享数据   多个线程访问同一个变量  产生非线程安全问题
                           例如:两个线程同时访问同一个变量
所以 在run方法前加入synchronized关键字,使多个线程执行run方法时 以排队的形式处理。当一个线程调用run方法前,先判断run方法是否被上锁,是则等待run方法调用结束后在调用。

synchronized可以在任意对象及方法加锁,加锁的这段代码称为互斥区 或 临界区
Thread.currentThread().getName()      返回的是对当前正在执行的线程对象的引用
This.getName()  当前调用它所在函数所属的对象的引用

Thread 类
Runnable接口
currentThread()
isAlive()
sleep()
Interrupt()
Interrupted() 是否中断 且重置状态为FALSE
isInterrupted();
getId()

线程在sleep状态下被中断,会进入catch语句 ,并且重置线程状态为FALSE
线程先中断后沉睡,则进入catch ,不会沉睡

Stop停止线程
Stop()方法与java.lang.ThreadDeath异常配合

使用stop方法释放锁将会造成数据不一致的结果

Suspend暂停 挂起  resume继续,重新开始
Suspend暂停run方法里的方法,则主函数或者其他地方无法使用run里的方法,因为同步锁未被释放~!~!

Yield方法的作用是当前线程放弃当前的CPU资源,让给其他任务

评分

参与人数 2荣誉 +8 鱼币 +8 贡献 +8 收起 理由
小甲鱼 + 3 + 3 + 3 支持楼主!
零度非安全 + 5 + 5 + 5 热爱鱼C^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-9 22:38:40 | 显示全部楼层
不错哟,排版待加强
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-10 09:02:53 | 显示全部楼层
零度非安全 发表于 2017-6-9 22:38
不错哟,排版待加强

好~我会注意的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-10 23:47:46 | 显示全部楼层
不错不错~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-11 08:33:02 | 显示全部楼层

受到巨大的鼓励~哈哈,继续学习!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 22:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表