线程及其通信
来源:互联网 发布:录音剪辑软件 编辑:程序博客网 时间:2024/05/17 02:11
线程
进程(正在执行的程序,宏观)包括(一个或多个)线程(微观)
线程的意义并不是制造了多个CPU,而是利用了CPU的空闲时间
1. 继承thread(不需要导包),重写run方法/实现runnable
2.主函数调用线程类的start方法,而非run方法
thread(实现runnable接口的类作为参数).start(),或,继承thread重写run方法的类的实例名.Start()
3.repaint 方法,paint 方法,使用线程可以实现定时重绘
4.join
在b的run方法中写a.join那么不管a是否在b之前start,或是休眠多久,a都会先于b执行(整个run方法,有多少次就多少次,执行完才轮到b)
5. notify 和wait都一定要在synchronized(同步锁)里面,
关于同步锁:同步锁中的代码并不是只有一个对象可以执行,而是它锁住的对象只有一个对象可以进行修改
6.继承了Thread就拥有了属性name及其set、get方法
7. 生产者-消费者问题
用同步锁两个生产者一个消费者(都休眠100ms)为什么不报错而是停了?
三个都处于等待,生产者1生产完时消费者正在休眠,wait列表中只有另一个生产者,无法notify到消费者,生产者2收到notify却因为生产者1已足够生产苹果而不进行动作,这样,当消费者休眠完虽然有苹果却因为没人notify一直处于wait状态,两个生产者也因为消费者没有消费没人notify,这就造成了不报错却僵持的局面。
改消费者休眠时间为10ms后不停止了,是因为供需平衡了吗?
修改后生产者notify到生产者的概率将大大减小(不是不存在),所以从宏观上看,这个问题被解决了
总结:都在等待是安全的,都在休眠却是危险的
如果一个对象发出了notify指令,wait队列为空会怎样?
- 线程及其通信
- 线程间通信及其安全问题
- 线程间通信及其安全问题
- 线程同步通信及其应用等相关内容及代码
- 线程之间进程之间的通信方式及其代码实现
- 线程通信
- 线程通信
- 线程通信
- 线程通信
- 线程通信
- 线程通信
- 线程通信
- 线程通信
- 线程通信
- 线程通信
- 线程通信
- 线程通信
- 线程通信
- YT14-HDU-圆桌会议
- Windows下 maven3.0.4的安装步骤+maven配置本地仓库
- 从硬盘安装Windows 7的方法汇总
- 【Servlet笔记】Servlet的转发(其他servlet、静态页面、JSP)
- 写给自己的北漂生存之毕业回顾
- 线程及其通信
- MongoDB Windows环境安装及配置
- 笔记本+Ubuntu14.04+cuda6.5+caffe的配置详解
- sql查询空值判断不同数据库的不同写法
- C# http 发送接收xml数据
- java写飞机大战四
- 一个初始驱动化函数
- 禅师与青年
- ROS 教程之 vision: 摄像头标定camera calibration