一:悲观锁 悲观锁,就是不管是否发生多线程冲突,只要存在这种可能,就每次访问都加锁,加锁就会导致锁之间的争夺,有争夺就会有输赢,输者等待。 syncrhoized是一种独占锁,即:占用该锁的线程才可以执行,申请该锁的线程就只能挂起等待,直到占用锁的线程释放锁才唤醒,拿到锁并执行。由于在进程挂起和恢复 ...
分类:
编程语言 时间:
2017-03-16 21:25:52
阅读次数:
217
出处:http://www.cnblogs.com/dolphin0520/p/3920357.html 一.线程的状态 在正式学习Thread类中的具体方法之前,我们先来了解一下线程有哪些状态,这个将会有助于后面对Thread类中的方法的理解。 线程从创建到最终的消亡,要经历若干个状态。一般来说, ...
分类:
编程语言 时间:
2017-03-15 18:24:56
阅读次数:
256
上篇楼主说明了多线程中死锁产生的原因并抛出问题——死锁的解放方案,那么在本篇文章,楼主将引用一个KFC生产汉堡,顾客购买汉堡的过程来说明死锁解决方案及多线程的等待唤醒机制。 简单地用一幅图来说明KFC生产汉堡,顾客来消费的过程: 场景分析: 代码构建:类里面的i属性是楼主为了效果好一些特意加的,与本 ...
分类:
编程语言 时间:
2017-03-11 00:54:37
阅读次数:
228
前言 协程可以解决哪些编程问题? 生产者-消费者 生产者A做面条,消费者B吃面条。A做完面条,B吃面条,吃完了,A再做... 则,有两种模式: 在消费者B吃面的function中插入resume唤醒生产者A,A生产完后放置一个yield(面条),返回面条并暂停,B接到返回值(面条)后开始吃。 在生产 ...
分类:
其他好文 时间:
2017-03-06 20:45:46
阅读次数:
144
线程组:ThreadGroup 把多个线程组合到一起,可以对一批线程进行分类处理,JAVA允许程序直接对线程进行控制 获取线程组:public final ThreadGroup getThreadGroup() 获取线程组的名称:public final String getName() 设置新的 ...
分类:
编程语言 时间:
2017-03-04 15:31:06
阅读次数:
205
线程的同步使用synchronized不使用stop和suspend方法进行线程的同步,stop不安全,会释放所有的锁定,suspend方法容易发生死锁,所以不能使用。 wait方法会让线程进入等待状态,放弃对象锁,只有对它发出notify才能唤醒。如果数据在线程之间进行共享那么我们编写的线程就必须 ...
分类:
编程语言 时间:
2017-03-03 22:20:49
阅读次数:
181
1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定,如果使用 synchronized ,如果A不释放,B将一直等下去,不能被中断如果 使用Ree ...
分类:
其他好文 时间:
2017-02-27 18:46:29
阅读次数:
179
操作系统实验报告二 姓名:许恺 学号:2014011329 日期:10月14日 题目1:编写线程池 关键代码如下: 题目2:将Web服务器接收功能加入到此线程池中,让线程池中的线程完成信号接收功能、文件读取和发送 程序代码以及运行贴图: 题目3:Web服务器对所有的Web页面请求进行计数,并能够对每 ...
分类:
其他好文 时间:
2017-02-26 17:38:47
阅读次数:
268
首先引入下面这段生产者和消费者的程序,店员类作为生产产品和消费产品的中介,其中的数据product为共享数据,产品最多只能囤积5个,当产品达到5个还在生产时,就会提示“产品已满!”,类似地,如果产品只有0个了还在消费,会提示“缺货!”: 运行程序,结果如下: 这是一种不好的情况,因为当产品已满时,还 ...
分类:
其他好文 时间:
2017-02-19 10:37:47
阅读次数:
293
因为个人对这块的知识也不熟悉,所以大多内容来源于网络. 1. Hadoop项目框架 2. Hadoop Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 Hadoop实现了一个分布式文件... ...
分类:
其他好文 时间:
2017-02-19 10:35:42
阅读次数:
238