- 浏览: 178617 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (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 2221序 最近因为项目的需求,经常会面试一些新人,也就会问他们 ... -
JAVA读取文件夹大小的几种方法实例
2016-04-24 15:39 726总是发现自己的C盘快满了,清理程序也不会帮我自己清理,然后 ... -
正确理解ThreadLocal
2015-10-06 16:52 1420最近打算总结下以前学的东西,但是由于文笔不好,先参考下网上 ... -
Java Regex - Matcher (java.util.regex.Matcher)
2015-03-01 13:59 862The Java Matcher class (java. ... -
Java Regex - Pattern (java.util.regex.Pattern)
2015-03-01 11:22 1539Java中的Pattern类是Java正则表达式API ... -
eclipse中查看jdk的源码
2014-11-23 11:43 1023最近一段时间跟jdk源码打交道的比较多,但是有的时候却是看 ... -
Struts2学习初设系列(一)之环境搭建
2014-07-20 22:47 1077已经毕业很长时间了,回过头来想想都不知道自己做了什么,由于 ... -
算法的时间复杂度分析
2014-07-20 11:14 16522.9.1 算法时间复杂度定义 在进 ... -
解析 Java 类和对象的初始化过程
2014-07-06 18:14 654问题引入 近日我在调试一个枚举类型的解析器程序,该 ... -
Java 中正确使用 hashCode 和 equals 方法
2014-07-05 18:17 652在这篇文章中,我将告诉大家我对hashCode和equals ... -
通过分析 JDK 源代码研究 Hash 存储机制
2014-07-05 17:22 618集合和引用 就像引 ... -
NIO 入门
2014-07-05 17:15 648在开始之前 关于本教程 新的输入/输出 (NIO) 库 ... -
利用AJax方式提交和Webservice完成页面输入汉字简体字回显繁体字
2014-06-29 18:05 1145最近一直在学习新的 ... -
How To Parse XML File Using XPath In Java
2014-06-29 11:59 1307最近一直在学习XML的Xpath解析方式,据说是一个很简单 ... -
Java排序算法之快速排序
2014-06-22 11:27 812快速排序使用分治法(Divide and conquer)策略 ... -
Java排序算法之简单选择排序
2014-06-21 22:31 769在网上搜索了很多的算法,貌似大家说的简单选择排序算法和直接选择 ... -
Java排序算法之冒泡排序
2014-06-21 20:22 998冒泡排序算法的基本思想是:首先将第n-1个记录的关键字和第n个 ... -
Java排序算法之直接插入排序
2014-06-21 19:33 1189直接插入排序算法的基本思想是:把n个待排序的元素看成为 ... -
JAVA之桥接模式
2014-05-26 20:11 0桥模式:将某个问题抽象的不同形式分别与该问题的具体实现 ... -
Java数字小写转换为大写
2014-05-11 11:52 1408闲来无事,在网上搜索了一些面试的题目,开始练习下,下列代码的作 ...
相关推荐
操作系统上机-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集合、多线程、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...