【第22期】观点:IT 行业加班,到底有没有价值?

鸟哥Java学习之线程间通信-多线程

原创 2016年06月01日 20:58:59
1.等待唤醒机制
    涉及的方法:wait(),notify(),notifyAll() 这些方法都必须定义在同步中,明确自己操作的是哪个锁上的线程。
 r.wait(),r 为同步的锁。

2.多生产者多消费者问题
见 ProducerConsumerDemo.java

3.同步代码块,对于锁的操作是隐式的,而新版本中有Lock,jdk1.5以后将同步和锁封装成对象,并将操作锁的隐式方法定义到了该对象中。
     Lock接口替代了同步代码块或同步函数synchronized的使用,可以一个锁上加上多组监视器    Condition接口替代了Object中的wait(),notify(),notifyAll方法,将其进行了封装,变成condition监视器对象,可以任意锁进行组合。
Lock lock = new ReentrantLock;//新建互斥锁
lock.lock(); //获取锁
 lock.unlock(); //释放锁
 Condition producer_con = lock.newCondition();
 producer_con.await();
consumer_con.signal();

4.wait和sleep区别:
    wait可以指定时间也可以不指定,sleep必须指定时间;在同步中时,对cpu的执行权和锁的处理不同,wait释放执行权,释放锁,sleep释放执行权,不释放锁

5.停止线程:stop方法(已过时,不安全)run方法结束
    任务中都会有循环结构,只要控制住循环就可以结束任务,用定义标记
 private boolen flag=true;
  while(flag){}
 public void setflag(){flag=flase;}

    如果线程处于冻结状态,无法读取状态,此时用interrupt()方法将线程从冻结状态强制恢复到运行状态,让线程具备cpu执行资格,但是强制动作会发生InterruptedException,记得要处理,如将标记改为flase。

6.守护线程(后台线程),setDaemon(),在开启线程前使用。当所有前台线程结束时,后台线程自动结束。
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

java学习之浅谈多线程1

java学习之浅谈多线程1 创建任务和线程 任务就是对象,为了创建任务,必须首先为任务定义一个类。任务类必须实现Runnable接口。Runnable接口非常简单,它只有一个run方法。需要实现这个...

Java网络与线程之初总结

1.以小T描述的thread是个duli

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

java网络编程之Http多线程下载应用实例

本demo通过RandomAccessFile, URLConnection和多线程机制实现了Http下载功能.从这里可以下载到完整的java代码工程: http://download.csdn.ne...

java学习之线程

jvm启动时就启动了多个线程,至少有两个线程可以分析出来。 1、执行main函数的线程,该线程的任务代码都定义在main函数中。 2、负责垃圾回收的线程。

java Socket多线程聊天程序(适合初学者)

一个非常简单的java聊天程序,有客户端和服务器端,目前只有群聊功能,其他的所有功能都可以在这个基础上添加,现在我分享出来主要是为了保持一个最简单的java聊天程序便于初学者学习,界面也非常的简洁,只...

Java学习之多线程

1.全限定名=包名+类名; 2.被访问的包中的类全限必须是public; 3.父类中受保护的方法可以在不同的包中的子类所访问; 4.在cmd中设置set classpath不能加引号; 5.M...

Java之旅多线程学习(一)——线程的实现方式

在讲解线程之前,我们来看看什么是进程以及两者的区别。  1.      进程VS线程   程序是什么?程序:在时间上严格有序的指令集合。它独占使用系统中的一切资源,包括CPU、内存、外设以及软件等...

Java学习之多线程

进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程。 线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切...

java多线程以及java网络编程实现简单的聊天系统

该系统采用java多线程技术及java网络编程技术实现一个基于C/S的聊天系统,系统分为客户端及服务器端: 服务器端主要涉及到以下几个线程: 1.在服务器启动之后会启动一个名为ConnectThr...

学完了《鸟哥Linux私房菜》大体回顾以及感悟。

今天来写这篇文章时,其实我已经把鸟哥的私房菜基础篇看完一个多星期了,但是却一直觉得没法开始写这篇文章。究其原因,确实是第四章与第五章中学到的东西太少,加上许多内容由于内核版本的升级出现了改变,没能在系...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)