![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
孟君
Every little step adds up to giant leap.
展开
-
Java并发编程-Executor框架+实例
[b]Executor框架[/b]是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等。运用该框架能够很好的将任务分成一个个的子任务,使并发编程变得方便。该框架的类图(方法并没有都表示出来)如下:[img]h...2013-07-18 21:23:31 · 105 阅读 · 0 评论 -
The Code Sample 代码实例 个人博客开通
个人博客小站开通[url]http://thecodesample.com/[/url]原创 2014-09-04 18:48:51 · 197 阅读 · 0 评论 -
三道多线程编程题
本文记录三道多线程编程题。[b]第一道:[/b] 有四个线程1、2、3、4。[b]线程1的功能就是输出A[/b],[b]线程2的功能就是输出B[/b],以此类推......... 现在有四个文件file1,file2,file3, file4。初始都为空。现要让四个文件呈如下格式: file1:A B C D A B.... file2:B C D A B C.... ...2013-10-14 14:30:03 · 151 阅读 · 0 评论 -
面试题 -- 一个线程打印 1~52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。...
[b]题目:[/b][color=blue]一个线程打印 1~52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。[/color]解决的方法有很多种,比如:使用synchronized, wait和notifyAll 使用Lock 和 Condition 使用Semaphore 等。本文采用Lock 和 Condition来实现。...2013-10-01 13:03:58 · 333 阅读 · 0 评论 -
面试题--三个线程循环打印ABC10次的几种解决方法
最近发现公司有份笔试试卷中有道多线程的[b]题目[/b]:[color=blue][b]有三个线程分别打印A、B、C,请用多线程编程实现,在屏幕上循环打印10次ABCABC…[/b][/color]这个最早好像是迅雷的面试题目吧,看到了然后就想重温一下这个题目的解决方法。在本文中,给出了五种这个题目的解决方法:[list][*][b]使用sleep[*]使用sync...2013-09-29 20:01:58 · 521 阅读 · 0 评论 -
Java并发编程-Condition使用实例
本文将简单介绍用于线程协作的Condition, 并给出一个例子,实现一个多线程题目--有三个线程分别打印A、B、C,请用多线程编程实现,在屏幕上循环打印10次ABCABC…。Condition是从JDK 1.5开始有的。API是这么描述的:[img]http://dl2.iteye.com/upload/attachment/0089/7456/d092662c-d5aa...2013-09-27 21:35:31 · 193 阅读 · 0 评论 -
Java并发编程: 使用Exchanger实现线程间的数据交换
本文介绍Exchanger工具类, 然后采用Exchanger给出一个两个线程交换数值的简单实例。[b]1. Exchanger介绍 [/b][code="java"]/** * A synchronization point at which two threads can exchange objects. * Each thread presents some obj...2013-08-08 12:13:00 · 95 阅读 · 0 评论 -
Java并发编程: 使用Semaphore限制资源并发访问的线程数
本文将介绍用来控制资源同时访问个数的Semaphore工具类, 然后采用Semaphore给出一个泊车的实例,最后给出Semaphore和CountDownLatch的几点比较.[b]1. Semaphore工具类介绍[/b][code="java"]/** * A counting semaphore. Conceptually, a semaphore maintai...2013-08-07 16:23:48 · 139 阅读 · 0 评论 -
Java并发编程: Volatile不能保证数据同步
在本篇博文中,将给出一个实例去验证volatile修饰的变量并不能保证其数据同步.Java内存模型规定了所有变量都存储在主内存中,每条线程都有自己的工作内存,线程的工作内存保存了被该线程使用到变量的主内存副本拷贝,线程对变量的所有操作(读取,赋值等)都必须在工作内存中进行,而不能直接读写主内存中的变量。不同线程也不能直接访问对方工作内存中的变量,线程间变量值的传递均需要通过主内存来完成...2013-08-05 12:47:29 · 301 阅读 · 0 评论 -
Java并发编程: CyclicBarrier让多线程齐步走
以前在一书中看到有一节的标题是“CyclicBarrier让多线程齐步走”,觉得这标题挺不错的,所以在写这篇博文的时候也采用了这个名字。本文首先会介绍CyclicBarrier辅助工具类,其次将用CyclicBarrier工具类来完成一个实例,最后将给出CyclicBarrier和CountDownLatch的几点比较。之前关于CountDownLatch的博文,请参考如下链接...2013-08-01 11:12:49 · 124 阅读 · 0 评论 -
Java并发编程: 使用CountDownLatch协调子线程
本文将介绍CountDownLatch工具类,并采用这个工具类给出一个实例。[b]1. CountDownLatch工具类介绍[/b]CountDownLatch是一个同步工具类,它允许一个或多个线程处于等待状态直到在其它线程中运行的一组操作完成为止。CountDownLatch用一个给定的计数来实现初始化。Await方法会一直处于阻塞状态,直到countDown方法调用而使当...2013-07-30 11:19:40 · 104 阅读 · 0 评论 -
Java编程练手100题
本文给出100道Java编程练手的程序。列表如下:面试编程写一个程序,去除有序数组中的重复数字编写一个程序使得两个线程陷入死锁使用递归算法反转字符串合并两个有序数组找出三个有序数组共有的元素字符(字母、数字、中文字符)统计示例最短时间过桥从一个整数数组中找出总和为S的所有子集5个钢珠离开凹轨的最短时间和最长时间1到50个数,每次去掉两个数,增加...2014-12-11 17:13:29 · 655 阅读 · 1 评论