最新文章列表

多线程设计模式之——Producer-Consumer Pattern

此模式是在生产者与消费者之间加入一个“桥梁参与者”来缓冲线程之间的处理速度差。一般可以存在多个生产者与消费者,但当双方都只有一个的时候,又称为Pipe Pattern。 例子:假设有2个生产者,2个消费者,仓库里只能放4个产品。(这里的产品就是String类型的名字而已) //Storage.java public class Storage { private String[] buf ...
hanlu0221 评论(0) 有1618人浏览 2012-12-13 23:32

多线程设计模式之——Balking Pattern

Balking Pattern 与 Guarded Suspension Pattern 都需要警戒条件,只不过Balking Pattern中,当警戒条件不成立时,不进行wait,直接中断。 Balking Pattern的适用性: 1.不需要刻意执行的时候,balk可以提高性能 2.不想等待警戒条件成立的时候 3.警戒条件只需第一次成立的时候,例如初始化操作 例子:仅类似“自动保存功能”,通 ...
hanlu0221 评论(0) 有1506人浏览 2012-12-12 16:14

java多线程(转载)三

那么如何解决呢? 1)加入同步 2)加入等待和唤醒 先来看看加入同步会是如何。
wb284551926 评论(0) 有1202人浏览 2012-12-10 15:20

JAVA传统线程技术

传统线程技术回顾1.创建线程java中线程的创建可以有两种方法:1、继承Thread类 2、实现Runnable接口继承Thread类创建线程的方法, 在继承了Thread类之后,不能再继承其他的方法。使用实现Runnable接口来创建线程容易达到资源共享!两种方式都要调用Thread对象的run方法,如果Thread类的run方法没有被覆盖,并且为该Thread对象设置了一个Runnable对象, ...
yelangha 评论(0) 有1180人浏览 2012-12-07 13:38

concurrent包,多线程信号量Semaphore

     信号量大家都不陌生引用百度百科上的解释      信号量:在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调 ...
myemptyname 评论(0) 有1276人浏览 2012-11-22 16:13

java线程池

  java5之后为我们提供了线程池,只需要使用API,不用去考虑线程池里特殊的处理机制。 Java5的线程池分好多种:固定尺寸的线程池、可变尺寸连接池等。 常用的是ThreadPoolExecutor,它的继承关系如下:  这编博客对线程池的使用做好详细的解说:http://lavasoft.blog.51cto.com/62575/222078     下面详细说明一下自定义线程的 ...
li200429 评论(0) 有2140人浏览 2012-11-13 17:37

Java多线程

多线程 一、 进程: 进程是程序的一次动态执行过程,经历从代码加载、代码执行到执行完毕的一个完整过程。一个应用程序就是一个进程。多进程操作系统能同时运行多个进程(程序),由于CPU具备分时机制,所以每个进程都能循环获得自己的CPU时间片。 线程: 每个Java程序都至少有一个线程——主线程。当一个Java程序启动时,JVM会创建主线程,并且在该线程中调用程序的main()方法。 1、单线程: 之 ...
小路青青0113 评论(16) 有4853人浏览 2012-07-31 15:05

java多线程

Java多线程 目录 1 线程的概念 1 1.1 线程的概念 1 1.2 进程与线程 1 2 线程的创建 2 2.1 JAVA创建线程 2 2.1.1 实现Runnable接口 2 2.1.2 扩展Thread类 4 2.2 JAVA线程的 ...
xmong 评论(0) 有1585人浏览 2012-06-15 15:12

线程池中所有线程结束捕捉

  下面的代码只是一个引子或者一种方案。       ThreadPoolExecutor threadPool=new ThreadPoolExecutor(20, 50, 50000,TimeUnit.MILLISECONDS            , new ArrayBlockingQueue<Runnable>(5, true));        for(int i=0;i& ...
学不止 评论(0) 有1283人浏览 2012-06-13 15:48

JAVA多线程扫盲

1.继承Thread类,重写该类的run()方法。 class MyThread extends Thread {     private int i = 0;     @Override     public void run() {         for (i = 0; i < 100; i++) {             System.out.println(Thre ...
taiwei.peng 评论(0) 有936人浏览 2012-05-25 12:46

ThreadLocal的使用及实现

  在java中,如果一个变量需要被多个线程访问,可以使用volatile来声明它为“易变的”。而假如一个变量要被持有它的某个线程独享,在java中,它可以使用java.lang.ThreadLocal类来实现线程本地存储的功能。这样,数据便只在同一个线程内可见和共享,因此,即便不同步也能保证线程之间不出现数据争用。 ThreadLocal使得各线程能够保持各自独立的一个对象,通过ThreadL ...
chenkangxian 评论(0) 有4082人浏览 2012-05-22 15:28

java多线程Socket实用例子

//服务器import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.Socket;public class Threa ...
mixer_a 评论(1) 有1459人浏览 2012-04-18 18:26

java线程放弃CPU使用权的三种方式

/** * 接着上一次的线程问题,再继续探讨,不可以将问题提起又转去研究其他的问题了,不好的习惯 * 要坚持研究一个问题,量变才能达成质变,一个老师教会我的,目前为止,都有坚持在做某些事情 * 至于有些事情,自己喜欢做的,也就谈不上坚持了,那是心之所向,情之所至,不会想到“坚持”二字 * 也会一如既往滴去做,这就是人,当然,我木有说,探讨继续不是我的心之所向和情之所至。哈哈, * 不扯了, ...
cbh735 评论(0) 有3633人浏览 2012-04-11 11:30

java多线程深入体会及分析

对于java中多线程并发问题之前理解一直不到位,最近在使用synchronized关键字时发现了很多使用误区。 解析1:分析以下代码 class  Info{       public synchronized add(){                System.out.println("add");       }       public synchronized de ...
fyumin 评论(1) 有1136人浏览 2012-03-02 16:09

java多线程同步synchronized

记录代码 有兴趣可以运行试试,然后想想。 最终结论只有一条: “synchronized”关键字同步的始终是 该synchronized修饰的方法的持有对象(同步方法) 该synchronized修饰的对象(同步块) 目前我所知的synchronized关键字用法,分3种情况:   普通方法上使用  eg: public synchronized void method(.. ...
lyjilu 评论(3) 有1766人浏览 2012-02-26 12:01

走出多线程和锁理解的误区

       本人很少原创技术文章(其他文章页很少),一般都是看别人文章写得就转发一下,但是关于多线程这块我一直都没有找到能说中要害又通俗易懂的文章,本人不是什么大牛,但在java线程锁这一块觉得自己理解的还算正确吧,本着知识共享的精神,今天我就试着把这一块说说,用的都是最通俗的语言,最简单的代码(命名没有做到见文识意,应该批评),希望能帮助困惑中的人解脱出来,如果我理解错了,那么也请大牛们帮我解 ...
pengfei 评论(1) 有2028人浏览 2012-02-15 13:33

Java自带的Future多线程模式

Java5后,提供了大量处理多线程的接口,以前只是简单的使用其线程池,最近发现Future模式也有,分享之     只贴出了部分代码:   定义池:     ...
sunnymoon 评论(0) 有3208人浏览 2011-11-15 18:08

java并发编程--一道经典多线程题的2种解法

coolxing按: 转载请注明作者和出处, 如有谬误, 欢迎在评论中指正.] 问题的描述 启动3个线程打印递增的数字, 线程1先打印1,2,3,4,5, 然后是线程2打印6,7,8,9,10, 然后是线程3打印11,12,13,14,15. 接着再由线程1打印16,17,18,19,20....以此类推, 直到打印到75. 程序的输出结果应该为:   线程1: 1 线程1: 2 线程1 ...
coolxing 评论(18) 有25864人浏览 2011-11-06 14:10

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics