1 package com.bjsxt.Thread.Demo; 2 public class ProducerConsumer { 3 /** 4 * 生产者与消费者 5 * @param args 6 */ 7 public stat...
分类:
编程语言 时间:
2015-04-10 19:31:02
阅读次数:
173
最近在学习linux下的编程,刚开始接触感觉有点复杂,今天把线程里比较重要的线程池程序重新理解梳理一下。实现功能:创建一个线程池,该线程池包含若干个线程,以及一个任务队列,当有新的任务出现时,如果任务队列不满,则把该任务加入到任务队列中去,并且向线程发送一个信号,调用某个线程为任务队列中的任务服务。...
分类:
编程语言 时间:
2015-04-09 23:37:34
阅读次数:
249
本文参考网上一些例子,使用synchronized及对象的wait/notify方法实现。
首先定义3个类,一个是容器类,属性有容器最大容量和当前容量;
另外两个分别是生产者和消费者类,二者分别有生产方法和消费方法(均在各自的run方法中实现,实际上最好抽离出来成为一个单独的方法)
package test3;
class Container{
public int max; /...
分类:
编程语言 时间:
2015-04-09 08:57:51
阅读次数:
147
RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储RabbitMQ提供了四种Exchange:fanout,direct,topic,headerheader模式在实际使用中较少,本文只对前三种模式进行比较。性能排序:fan...
分类:
其他好文 时间:
2015-04-09 00:40:23
阅读次数:
880
对于多线程程序来说,不管任何编程语言,生产者消费者模型都是最经典的。
实际上,准确的说应该是“生产者-消费者-仓储”模型,离开了仓储,生产者消费者模型就显得没有说服力了。...
分类:
编程语言 时间:
2015-04-08 16:36:33
阅读次数:
158
BlockingQueue接口定义了包括两个附加功能的队列。这两个功能是:如果从空队列中取元素或者向满队列中增加元素,则进入等待状态。BlockinQueue接口中的方法pu(e)t和take()可以使其进入无限阻塞状态,可以用这两个方法实现生产者和消费者问题,比较简单。代码如下:package ....
分类:
其他好文 时间:
2015-04-07 18:59:38
阅读次数:
86
今天上午,参加大摩的面试,自觉失败,记录一下过程。
面试官看着简历,并没有就简历提问,整个过程都在问java多线程的问题。
1. ReentrantLock,作为可重入锁,怎么理解“可重入”二字,有没有不可重复的锁?
我:获得对象锁的线程能够再次获得对象锁,访问对象……被鄙视了,后来想想,应该把递归这种场景说下;
2.生产者-消费者模型怎么实现?
我:使用synchronized或者Lo...
分类:
编程语言 时间:
2015-04-03 17:22:16
阅读次数:
246
import java.util.ArrayList;import java.util.List;/** * 箱子最多装5个苹果。一个人往里放,一个人往外拿。苹果无限。 * @author Administrator */public class test01 { public static voi...
分类:
编程语言 时间:
2015-04-03 14:59:34
阅读次数:
134
题目要求用java代码模拟实现:一个人不断往箱子里放苹果,另一个人不断从箱子里取苹果,箱子只能放5个苹果,苹果数量无限。要求不使用java.util.concurrent包中的类。思路这道题主要考,java并发编程、Object.wai()、Object.notify()方法的使用、循环队列的使用1...
分类:
编程语言 时间:
2015-04-03 10:49:55
阅读次数:
187
今天参加了阿里2015校招实习生的笔试。
选择题部分确实有水平,由于基础一般再加上没做准备,打得一塌糊涂,目测已经阵亡了,不过附加题的最后一个还是很基础的,关于java的多线程中的生产者和消费者的问题,在此感谢@绝影。
题目:
有个篮子,一个人不停地往里面放苹果,另一个不停地从里面拿出来苹果,篮子最多能放5个苹果,苹果数量无限。用Java模拟实现。
实现过程:
主类:
class Pr...
分类:
编程语言 时间:
2015-04-03 09:26:04
阅读次数:
178