欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    java线程大总结.pdf

    • 资源ID:76243131       资源大小:99.05KB        全文页数:18页
    • 资源格式: PDF        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    java线程大总结.pdf

    二、一、从结果可以看出,信号量仅仅是对池资源进行监控,但不保证线程的安全,因此,在使用时候,应该自己控制线程的安全访问池资源。阻塞队列是Java5线程新特征中的内容,Java定义了阻塞队列的接口java.util.concurrent.BlockingQueue,阻塞队列的概念是,一个指定长度的队列,如果队列满了,添加新元素的操作会被阻塞等待,直到有空位为止。同样,当队列为空时候,请求队列元素的操作同样会阻塞等待,直到有可用元素为止。有了这样的功能,就为多线程的排队等候的模型实现开辟了便捷通道,非常有用。java.util.concurrent.BlockingQueue继承了 java.util.Queue 接口,可以参看API 文档。下面给出一个简单应用的例子:import java.util.concurrent.BlockingQueue;import java.util.concurrent.ArrayBlockingQueue;/*Java 线程:新特征-阻塞队列*author leizhimin 2009-11-5 14:59:15*/public class Test public static void main(String args)throws InterruptedException BlockingQueue bqueue=new ArrayBlockingQueue(20);for(int i=0;i 30;i+)/将指定元素添加到此队列中,如果没有可用空间,将一直等待(如果有必要)。bqueue.put(i);System.out.println(向阻塞队列中添加了元素:+i);System.out.println(程序到此运行结束,即将退出-);输出结果:向阻塞队列中添加了元素:0 向阻塞队列中添加了元素:1 向阻塞队列中添加了元素:2 向阻塞队列中添加了元素:3 向阻塞队列中添加了元素:4 向阻塞队列中添加了元素:5 向阻塞队列中添加了元素:6 向阻塞队列中添加了元素:7 向阻塞队列中添加了元素:8 向阻塞队列中添加了元素:9 向阻塞队列中添加了元素:10 向阻塞队列中添加了元素:11 向阻塞队列中添加了元素:12 向阻塞队列中添加了元素:13 向阻塞队列中添加了元素:14 向阻塞队列中添加了元素:15 向阻塞队列中添加了元素:16 向阻塞队列中添加了元素:17 向阻塞队列中添加了元素:18 向阻塞队列中添加了元素:19 可以看出,输出到元素19 时候,就一直处于等待状态,因为队列满了,程序阻塞了。这里没有用多线程来演示,没有这个必要。另外,阻塞队列还有更多实现类,用来满足各种复杂的需求:ArrayBlockingQueue,DelayQueue,LinkedBlockingQueue,PriorityBlockingQueue,SynchronousQueue,具体的API 差别也很小。对于阻塞栈,与阻塞队列相似。不同点在于栈是“后入先出”的结构,每次操作的是栈顶,而队列是“先进先出”的结构,每次操作的是队列头。这里要特别说明一点的是,阻塞栈是Java6的新特征。Java为阻塞栈定义了接口:java.util.concurrent.BlockingDeque,其实现类也比较多,具体可以查看JavaAPI 文档。下面看一个简单例子:import java.util.concurrent.BlockingDeque;import java.util.concurrent.LinkedBlockingDeque;/*Java 线程:新特征-阻塞栈*author leizhimin 2009-11-5 15:34:29*/public class Test public static void main(String args)throws InterruptedException BlockingDeque bDeque=new LinkedBlockingDeque(20);for(int i=0;i 0)cash+=x;/存款System.out.println(name+存款 +x+,当前余额为 +cash);_draw.signalAll();/唤醒所有等待线程。lock.unlock();/释放锁/*取款*param x 操作金额*param name 操作人*/public void drawing(int x,String name)lock.lock();/获取锁try if(cash-x 0)cash+=x;/存款System.out.println(name+存款 +x+,当前余额为 +cash);notifyAll();/唤醒所有等待线程。/*取款*param x 操作金额*param name 操作人*/public synchronized void drawing(int x,String name)if(cash-x 0)synchronized(this)cash+=x;/存款System.out.println(name+存款 +x+,当前余额为 +cash);notifyAll();/唤醒所有等待线程。/*取款*param x 操作金额*param name 操作人*/public synchronized void drawing(int x,String name)synchronized(this)if(cash-x 主任务执行了!);/*子任务*/class SubTask extends Thread private String name;private CyclicBarrier cb;SubTask(String name,CyclicBarrier cb)this.name=name;this.cb=cb;public void run()System.out.println(子任务 +name+开始执行了!);for(int i=0;i 主任务执行了!Process finished with exit code 0 从执行结果可以看出,所有子任务完成的时候,主任务执行了,达到了控制的目标。Java线程是 Java语言中一个非常重要的部分,Java5之前,多线程的语言支持还是比较弱的,内容也较少,写一个复杂的多线程程序是相当有挑战性的。在Java5以后,Java对多线程做了很多扩展,扩展部分称之为并发包。这部分内容大大增强了Java多线程编程的能力,通过使用Java5线程新特征的API,可以很容易的做出复杂的多线程程序。与其他语言相比,已经是相当强悍了。通过十多篇博文,将Java多线程的方方面面过了一遍,对我来说是一个学习和提高的过程,也为 Java线程系列博文能给后来的学习者带来便利。知识点都过了一遍,要总结起来感觉很困难,毕竟Java线程是一个庞大的话题,不知道从何说起,如果泛泛而谈,那总结还有什么意义呢,再次,将前面的博文串联起来,按照先后顺序加上链接,以方便浏览也最好的首尾。

    注意事项

    本文(java线程大总结.pdf)为本站会员(索****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开