- 浏览: 177328 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (99)
- 备忘录 (48)
- linux (19)
- oracle (10)
- shell (8)
- awk (1)
- java (48)
- just do it (29)
- more and more (46)
- common (29)
- 设计模式 (8)
- Java Web (9)
- Spring (0)
- Structs 2 (2)
- Java 高级 (4)
- 存储 (3)
- Virtual Box (1)
- ant (1)
- maven (0)
- 数据结构 (5)
- 算法 (5)
- javascript (1)
- ajax (1)
- jquery (1)
- xml (1)
- IBM (3)
- 转载 (3)
- English (2)
- html&css (0)
- hibernate (2)
- mysql (1)
- memcached (1)
最新评论
-
飞出四季做的茧:
kris_zhang 写道int temp = 0 ; ...
Java IO流 Zip文件的压缩和解压缩 -
kris_zhang:
int temp = 0 ; while(( ...
Java IO流 Zip文件的压缩和解压缩 -
welcomezhang:
学习了,这块自己还得深挖下
为什么HashMap不是线程安全的 -
fomeiherz:
这个写的最详细了,赞一个
Java的泛型类和泛型方法 -
beijishiqidu:
hanmiao 写道http://yangguangfu.it ...
Java设计模式之策略模式
题目如下:
四个线程1,2,3,4. 线程1,2对变量i加一. 线程3,4对变量i减去一.四个线程顺序执行, 每个线程每次只执行一次.i的初始值为0, 打印结果0 1 2 1 0 1 2 1 0 1 2...
运行结果如下:
参考自:http://ethanzhou.blog.51cto.com/6147883/1045683
四个线程1,2,3,4. 线程1,2对变量i加一. 线程3,4对变量i减去一.四个线程顺序执行, 每个线程每次只执行一次.i的初始值为0, 打印结果0 1 2 1 0 1 2 1 0 1 2...
package test01; import java.util.concurrent.LinkedBlockingQueue; public class ThreadUtil { private LinkedBlockingQueue<Integer> lbq = new LinkedBlockingQueue<Integer>( 4); private int count = 0; @SuppressWarnings("boxing") public ThreadUtil() { lbq.offer(1); lbq.offer(2); lbq.offer(3); lbq.offer(4); } @SuppressWarnings("boxing") public synchronized void inc(int content) { while (true) { int temp = lbq.peek(); if (temp == content) { break; } notifyAll(); try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.print(count + " "); count++; try { lbq.offer(lbq.take()); } catch (InterruptedException e) { e.printStackTrace(); } //print(); } @SuppressWarnings("boxing") public synchronized void dec(int content){ while (true) { int temp = lbq.peek(); if (temp == content) { break; } notifyAll(); try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.print(count + " "); count--; try { lbq.offer(lbq.take()); } catch (InterruptedException e) { e.printStackTrace(); } //print(); } private void print() { System.out.println("=====>"+lbq.toString()); } }
package test01; public class IncThread implements Runnable { private ThreadUtil tu; private int content; public IncThread(ThreadUtil tu, int content) { this.tu = tu; this.content = content; } @Override public void run() { while (true) { tu.inc(content); } } }
package test01; public class DecThread implements Runnable{ private ThreadUtil tu; private int content; public DecThread(ThreadUtil tu,int content) { this.tu = tu; this.content = content; } @Override public void run() { while (true) { tu.dec(content); } } }
package test01; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Test01 { public static void main(String[] args) { ThreadUtil tu = new ThreadUtil(); ExecutorService exec = Executors.newFixedThreadPool(4); exec.submit(new IncThread(tu, 1)); exec.submit(new IncThread(tu, 2)); exec.submit(new DecThread(tu, 3)); exec.submit(new DecThread(tu, 4)); exec.shutdown(); } }
运行结果如下:
0 1 2 1 0 1 2 1 0 1 2 1 0 1 2 1
参考自:http://ethanzhou.blog.51cto.com/6147883/1045683
发表评论
-
为什么HashMap不是线程安全的
2016-06-15 22:27 2207序 最近因为项目的需求,经常会面试一些新人,也就会问他们 ... -
JAVA读取文件夹大小的几种方法实例
2016-04-24 15:39 710总是发现自己的C盘快满了,清理程序也不会帮我自己清理,然后 ... -
正确理解ThreadLocal
2015-10-06 16:52 1409最近打算总结下以前学的东西,但是由于文笔不好,先参考下网上 ... -
Java Regex - Matcher (java.util.regex.Matcher)
2015-03-01 13:59 851The Java Matcher class (java. ... -
Java Regex - Pattern (java.util.regex.Pattern)
2015-03-01 11:22 1526Java中的Pattern类是Java正则表达式API ... -
eclipse中查看jdk的源码
2014-11-23 11:43 1011最近一段时间跟jdk源码打交道的比较多,但是有的时候却是看 ... -
Struts2学习初设系列(一)之环境搭建
2014-07-20 22:47 1070已经毕业很长时间了,回过头来想想都不知道自己做了什么,由于 ... -
算法的时间复杂度分析
2014-07-20 11:14 16432.9.1 算法时间复杂度定义 在进 ... -
解析 Java 类和对象的初始化过程
2014-07-06 18:14 645问题引入 近日我在调试一个枚举类型的解析器程序,该 ... -
Java 中正确使用 hashCode 和 equals 方法
2014-07-05 18:17 640在这篇文章中,我将告诉大家我对hashCode和equals ... -
通过分析 JDK 源代码研究 Hash 存储机制
2014-07-05 17:22 604集合和引用 就像引 ... -
NIO 入门
2014-07-05 17:15 635在开始之前 关于本教程 新的输入/输出 (NIO) 库 ... -
利用AJax方式提交和Webservice完成页面输入汉字简体字回显繁体字
2014-06-29 18:05 1135最近一直在学习新的 ... -
How To Parse XML File Using XPath In Java
2014-06-29 11:59 1296最近一直在学习XML的Xpath解析方式,据说是一个很简单 ... -
Java排序算法之快速排序
2014-06-22 11:27 800快速排序使用分治法(Divide and conquer)策略 ... -
Java排序算法之简单选择排序
2014-06-21 22:31 755在网上搜索了很多的算法,貌似大家说的简单选择排序算法和直接选择 ... -
Java排序算法之冒泡排序
2014-06-21 20:22 984冒泡排序算法的基本思想是:首先将第n-1个记录的关键字和第n个 ... -
Java排序算法之直接插入排序
2014-06-21 19:33 1173直接插入排序算法的基本思想是:把n个待排序的元素看成为 ... -
JAVA之桥接模式
2014-05-26 20:11 0桥模式:将某个问题抽象的不同形式分别与该问题的具体实现 ... -
Java数字小写转换为大写
2014-05-11 11:52 1387闲来无事,在网上搜索了一些面试的题目,开始练习下,下列代码的作 ...
相关推荐
操作系统上机-Linux多线程编程
用C#的多线程技术实现的炮打飞机上机实验题。希望对大家有参考价值。
绝对超值的java全类型的面试题,包含JAVA应用的各个方面,包含各个知名公司的最新的java类面试题,只要你全部背熟,就可以去应聘任何公司的任何java类职务,请各公司自动回避。 对付java “应试”面试的最好武器,希望...
阿里巴巴的面试经典题,其中包含了大量的阿里巴巴HR的面试题,个人亲身的面试体会,面试经典,面试宝典,比如Java的面试题,中的面向对象,重写复写,各种集合的考察线程,单线程多线程的考察线程安全,JVM还有GC...
全面的Java基础题目,涵盖多线程、网络编程、IO流操作等技术知识,适合Java初学者,答案联系我免费赠送
Onion压仓底的算法题解,包含Leetcode,研究生复试上机题,企业笔试题,已有题目150+ algorithm 算法及模版 contest 比赛算法题,包括研究生复试、企业笔试题 leetcode 经典 array 数组类型题目 backtrace 回溯题目 ...
Java基础、Java集合、多线程、JDBC、HTTP、JSP、Servlet、Struts面试题汇总(附答案).docx java工程师面试题大全-100%公司笔试题你都能碰到几个.docx Java开发工程师上机笔试题.docx Java开发求职面试题.docx Java...
Java画随机圆:大小随机、颜色随机、位置随机。 西安电子科技大学Java上机题
主要内容包括c#多线程处理、tcp、udp、smtp和pop3的高级应用以及p2p应用编程,网络数据加密与解密的方法,三维设计与多媒体编程方法,同时还有与本书配套的上机实验指导、电子教案、所有例题与习题的源程序和全部...
此后介绍 Windows应用程序开发、GDI+编程、文件操作、数据库应用、多线程技术。习题主要突出基本编程和基本概念,实验主要锻炼编程和应用,读者先跟着做,然后自己练习。一般来说,通过本教程学习,习题练习,特别是...
其中第1~5章介绍了C#多线程处理、TCP、UDP、SMTP和POP3协议的高级应用以及P2P应用编程,第6章介绍了网络数据加密与解密的方法,第7章介绍了三维设计与多媒体编程方法,第8章为与本书配套的上机实验指导。...
主要内容包括c#多线程处理、tcp、udp、smtp和pop3的高级应用以及p2p应用编程,网络数据加密与解密的方法,三维设计与多媒体编程方法,同时还有与本书配套的上机实验指导、电子教案、所有例题与习题的源程序和全部...
第12章多线程开发 第13章反射技术 第14章实验指导3 下篇UML 第15章UML入门 第16章用例图 第17章类图和对象图 第18章实验指导4 第19章顺序图、协作图、状态图和活动图 第20章包图、构件图和部署图 第21...
前 言 6 第1章 进程、线程与网络协议 7 1.1 进程和线程 7 1.1.1 Process类 7 ...第8章 上机实验指导 194 8.1 实验一 简单网络聊天系统 194 8.2 实验二 网络呼叫应答提醒系统 195 8.3 实验三 文件数据加密与解密 199
(3)多线程编程方法参见附件。) 3. 调试报告: 1) 调试记录 2) 自我评析和总结 上机时间安排: 19周一 ~ 五 下午14:00 - 18:00 (6月27日开始) 指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日...
12.1.5 为什么需要多线程309 12.1.6 线程分类309 12.2 线程的生命周期309 12.2.1 线程的状态及转换310 12.2.2 线程睡眠311 12.2.3 线程让步313 12.2.4 线程的加入313 12.3 线程的调度和优先级314 12.4 线程的同步315...
学习.NET Socket编程的好书,资源包含Word版电子书(201页完整版),源代码,PPT,...第8章 上机实验指导 194 8.1 实验一 简单网络聊天系统 194 8.2 实验二 网络呼叫应答提醒系统 195 8.3 实验三 文件数据加密与解密 199