java线程学习笔记
来源:互联网 发布:python buffer类型 编辑:程序博客网 时间:2024/05/29 14:29
本学习心得是为了加深自己的印象及以后回顾,如果能对你有些许帮助,那也是喜闻乐见。
一 创建方式:
① 重载Thread类里面的run函数:
class MyThead extends Thread{
@Override
public void run() {
//do your own job
}
}
②用Runnable
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
}).start();
二 线程同步
通过synchronized (flag)来实现,其中flag是object的对象锁,主要对应的函数是wait() 、notify() 、notifyall()。
①wait执行后所在线程就立刻从所在代码处开始等待状态,代码不再执行,等同一的对象锁发出notify或者也调用wait时,会重新从等待地方的代码位置开始运行。
②notify()后,代码不会离开停止,会一直运行到所在同步模块执行完毕,然后释放锁给其他等待进程使用。
三线程的停止
虽然Thread有函数suspend resume sleep stop finish.
但是java官方已经方式使用stop suspend resume finish。只是保留了start.
推荐的停止方法有:使用标志来控制,使run函数自然运行结束。
但是这种情况在线程阻塞的情况下是无效的,
当线程处于非运行(Run)状态
当线程处于下面的状况时,属于非运行状态:
当sleep方法被调用。
当wait方法被调用。
当被I/O阻塞,可能是文件或者网络等等。
当线程处于上述的状态时,使用前面介绍的方法就不可用了。这个时候,我们可以使用interrupt()来打破阻塞的情况,如:
public void stop() { Thread tmpBlinker = blinker; blinker = null; if (tmpBlinker != null) { tmpBlinker.interrupt(); } }
当interrupt()被调用的时候,InterruptedException将被抛出,所以你可以再run方法中捕获这个异常,让线程安全退出:
try { .... wait();} catch (InterruptedException iex) { throw new RuntimeException("Interrupted",iex);}
- java线程学习笔记
- java线程学习笔记
- java 线程 学习笔记
- java线程学习笔记
- java线程学习笔记
- Java线程学习笔记
- java线程学习笔记
- JAVA学习笔记 -- 线程
- JAVA学习笔记 -- 线程
- Java 线程学习笔记
- 学习笔记-java线程
- 【Java学习笔记】线程
- Java学习笔记: 线程
- java线程学习笔记
- java学习笔记-线程
- JAVA线程学习笔记
- Java学习笔记--线程
- Java学习笔记--线程
- EditPlus 3.60 新功能:函数列表面板、代码提示
- Kmeans聚类之建立词袋子模型
- wamp安装ZendOptimizer
- 将Qt 动态链接生成的exe及依赖dll打包方法
- (俄)快车AM3 140.0°E
- java线程学习笔记
- 陌上花开,聆听那一曲旧时光的伤
- 学习JQuery - 2
- session持久化设置
- QT程序打包发布 - 免安装(MolePro Box)
- service的启动控制
- android关闭应用
- JUnit简单使用教程
- 文本分类资源和程序开源共享