- 浏览: 324894 次
- 性别:
- 来自: 西宁
文章分类
- 全部博客 (120)
- Java Thought (29)
- Java Pattern (4)
- Data Base (7)
- Algorithm Design (33)
- Linux (0)
- Mysql (2)
- Oracle (0)
- ConstructionDesign-架构 (5)
- Spring Platform (0)
- Tomcat (1)
- JavaScript (7)
- Web System (3)
- MS SQLServer (1)
- 软件哲学 (6)
- View (3)
- Java GUI (4)
- CSSDIV (7)
- CloudComputing (0)
- WebService (0)
- SystemOrProject (2)
- SOA (0)
- 互转共享 (3)
- 偶尔java习题 (0)
- Thinks with does (1)
最新评论
-
sassds:
佩服啊 高手
分享一款js特效 -
bhjackson:
学习啦,能否详细介绍下回溯的过程?O(∩_∩)O谢谢
分享回溯法- 找n个数中r个数的组合 -
zk7019311:
了解了解。。。。。
业务层代码复用的一点建议 -
lijie1819:
看到LZ的设计思想,感觉和抽象工厂模式有点相像。
业务层代码复用的一点建议 -
wjjcml1982:
酷毙了!楼主太强悍了!
分享一款js特效
1. 问题描述:
Robert博士要进行一场实验,她需要两个助手Alice和Bob,Alice负责从一箱试管剂中取出优先级最高的试管剂(每个试管剂
都有编号ID,规定ID最小的优先级最高)放到试管剂台容器里,该容器里只能放入一个试管剂;当Alice把试管剂放到容器里后,
就会通知Bob,然后Bob把试管剂送到Rober博士的实验室,然后Robert又会通知Alice, Alice看到容器里空了,就会放入下一个
优先级最高的试管剂并通知Bob...如此循环。
请用计算机模拟仿真该场景过程。
2. 问题分析:
这是典型的对象通信问题。即线程间的协作问题。
3. 实现方法
(1) 一箱试管剂中取出优先级最高的试管剂(每个试管剂都有编号ID,规定ID最小的优先级最高)
用优先级队列来模拟试管剂箱。
(3) Alice
(4) Bob
4. 输出结果:
Alice 把试管剂:19 放入到容器里
Bob 从容器里取走试管剂:19
Alice 把试管剂:20 放入到容器里
Bob 从容器里取走试管剂:20
Alice 把试管剂:21 放入到容器里
Bob 从容器里取走试管剂:21
Alice 把试管剂:22 放入到容器里
Bob 从容器里取走试管剂:22
Alice 把试管剂:23 放入到容器里
Bob 从容器里取走试管剂:23
Alice 把试管剂:24 放入到容器里
Bob 从容器里取走试管剂:24
Alice 把试管剂:25 放入到容器里
Bob 从容器里取走试管剂:25
Alice 把试管剂:26 放入到容器里
Bob 从容器里取走试管剂:26
Alice 把试管剂:27 放入到容器里
Bob 从容器里取走试管剂:27
Alice 把试管剂:28 放入到容器里
Bob 从容器里取走试管剂:28
Alice 把试管剂:29 放入到容器里
Bob 从容器里取走试管剂:29
Alice 把试管剂:30 放入到容器里
Bob 从容器里取走试管剂:30
Alice 把试管剂:31 放入到容器里
Bob 从容器里取走试管剂:31
Alice 把试管剂:32 放入到容器里
Bob 从容器里取走试管剂:32
Alice 把试管剂:33 放入到容器里
Bob 从容器里取走试管剂:33
Alice 把试管剂:34 放入到容器里
Bob 从容器里取走试管剂:34
Alice 把试管剂:35 放入到容器里
Bob 从容器里取走试管剂:35
Alice 把试管剂:36 放入到容器里
Bob 从容器里取走试管剂:36
Alice 把试管剂:37 放入到容器里
Bob 从容器里取走试管剂:37
Alice 把试管剂:38 放入到容器里
Bob 从容器里取走试管剂:38
Alice 把试管剂:39 放入到容器里
Bob 从容器里取走试管剂:39
Alice 把试管剂:40 放入到容器里
Bob 从容器里取走试管剂:40
Alice 把试管剂:41 放入到容器里
Bob 从容器里取走试管剂:41
Alice 把试管剂:42 放入到容器里
Bob 从容器里取走试管剂:42
Alice 把试管剂:43 放入到容器里
Bob 从容器里取走试管剂:43
Alice 把试管剂:44 放入到容器里
Bob 从容器里取走试管剂:44
Alice 把试管剂:45 放入到容器里
Bob 从容器里取走试管剂:45
Alice 把试管剂:46 放入到容器里
Bob 从容器里取走试管剂:46
Alice 把试管剂:47 放入到容器里
Bob 从容器里取走试管剂:47
Alice 把试管剂:48 放入到容器里
Bob 从容器里取走试管剂:48
Alice 把试管剂:49 放入到容器里
Bob 从容器里取走试管剂:49
Alice 把试管剂:50 放入到容器里
Bob 从容器里取走试管剂:50
Alice 把试管剂:51 放入到容器里
Bob 从容器里取走试管剂:51
Alice 把试管剂:52 放入到容器里
Bob 从容器里取走试管剂:52
Alice 把试管剂:53 放入到容器里
Bob 从容器里取走试管剂:53
Alice 把试管剂:54 放入到容器里
Bob 从容器里取走试管剂:54
Alice 把试管剂:55 放入到容器里
Bob 从容器里取走试管剂:55
Alice 把试管剂:56 放入到容器里
Bob 从容器里取走试管剂:56
Alice 把试管剂:57 放入到容器里
Bob 从容器里取走试管剂:57
Alice 把试管剂:58 放入到容器里
Bob 从容器里取走试管剂:58
Alice 把试管剂:59 放入到容器里
Bob 从容器里取走试管剂:59
Alice 把试管剂:60 放入到容器里
Bob 从容器里取走试管剂:60
Alice 把试管剂:61 放入到容器里
Bob 从容器里取走试管剂:61
Alice 把试管剂:62 放入到容器里
Bob 从容器里取走试管剂:62
Alice 把试管剂:63 放入到容器里
Bob 从容器里取走试管剂:63
Alice 把试管剂:64 放入到容器里
Bob 从容器里取走试管剂:64
Alice 把试管剂:65 放入到容器里
Bob 从容器里取走试管剂:65
Alice 把试管剂:66 放入到容器里
Bob 从容器里取走试管剂:66
Alice 把试管剂:67 放入到容器里
Bob 从容器里取走试管剂:67
Alice 把试管剂:68 放入到容器里
Bob 从容器里取走试管剂:68
Alice 把试管剂:69 放入到容器里
Bob 从容器里取走试管剂:69
Alice 把试管剂:70 放入到容器里
Bob 从容器里取走试管剂:70
Alice 把试管剂:71 放入到容器里
Bob 从容器里取走试管剂:71
Alice 把试管剂:72 放入到容器里
Bob 从容器里取走试管剂:72
Alice 把试管剂:73 放入到容器里
Bob 从容器里取走试管剂:73
Alice 把试管剂:74 放入到容器里
Bob 从容器里取走试管剂:74
Alice 把试管剂:75 放入到容器里
Bob 从容器里取走试管剂:75
Alice 把试管剂:76 放入到容器里
Bob 从容器里取走试管剂:76
Alice 把试管剂:77 放入到容器里
Bob 从容器里取走试管剂:77
Alice 把试管剂:78 放入到容器里
Bob 从容器里取走试管剂:78
Alice 把试管剂:79 放入到容器里
Bob 从容器里取走试管剂:79
Alice 把试管剂:80 放入到容器里
Bob 从容器里取走试管剂:80
Alice 把试管剂:81 放入到容器里
Bob 从容器里取走试管剂:81
Alice 把试管剂:82 放入到容器里
Bob 从容器里取走试管剂:82
Alice 把试管剂:83 放入到容器里
Bob 从容器里取走试管剂:83
Alice 把试管剂:84 放入到容器里
Bob 从容器里取走试管剂:84
Alice 把试管剂:85 放入到容器里
Bob 从容器里取走试管剂:85
Alice 把试管剂:86 放入到容器里
Bob 从容器里取走试管剂:86
Alice 把试管剂:87 放入到容器里
Bob 从容器里取走试管剂:87
Alice 把试管剂:88 放入到容器里
Bob 从容器里取走试管剂:88
Alice 把试管剂:89 放入到容器里
Bob 从容器里取走试管剂:89
Alice 把试管剂:90 放入到容器里
Bob 从容器里取走试管剂:90
Alice 把试管剂:91 放入到容器里
Bob 从容器里取走试管剂:91
Alice 把试管剂:92 放入到容器里
Bob 从容器里取走试管剂:92
Alice 把试管剂:93 放入到容器里
Bob 从容器里取走试管剂:93
Alice 把试管剂:94 放入到容器里
Bob 从容器里取走试管剂:94
Alice 把试管剂:95 放入到容器里
Bob 从容器里取走试管剂:95
Alice 把试管剂:96 放入到容器里
Bob 从容器里取走试管剂:96
Alice 把试管剂:97 放入到容器里
Bob 从容器里取走试管剂:97
Alice 把试管剂:98 放入到容器里
Bob 从容器里取走试管剂:98
Alice 把试管剂:99 放入到容器里
Bob 从容器里取走试管剂:99
+1
呵呵 学习和分享。。。
谢谢支持~~ 只要每个人有心 都可以把自己好的想法发布出来 分享才快乐~~
Robert博士要进行一场实验,她需要两个助手Alice和Bob,Alice负责从一箱试管剂中取出优先级最高的试管剂(每个试管剂
都有编号ID,规定ID最小的优先级最高)放到试管剂台容器里,该容器里只能放入一个试管剂;当Alice把试管剂放到容器里后,
就会通知Bob,然后Bob把试管剂送到Rober博士的实验室,然后Robert又会通知Alice, Alice看到容器里空了,就会放入下一个
优先级最高的试管剂并通知Bob...如此循环。
请用计算机模拟仿真该场景过程。
2. 问题分析:
这是典型的对象通信问题。即线程间的协作问题。
3. 实现方法
(1) 一箱试管剂中取出优先级最高的试管剂(每个试管剂都有编号ID,规定ID最小的优先级最高)
用优先级队列来模拟试管剂箱。
package boke.thread4; /** * 基于数组的优先级队列【最小的元素具有最大优先权】 * * @since jdk1.6 * @author 毛正吉 * @version 1.0 * @date 2010.05.25 * */ public class PriorityQueue { public static void main(String[] args) throws PriorityQueueException { PriorityQueue pq = new PriorityQueue(); pq.enQueue(10); pq.enQueue(40); pq.enQueue(43); pq.enQueue(20); pq.enQueue(50); pq.enQueue(30); pq.enQueue(99); while (!pq.isEmpty()) { int element = pq.delQueue(); System.out.print(element + " "); } System.out.println(""); } private int[] pqElements; private int count; private static final int MAX_PQ_SIZE = 1000; public PriorityQueue() { pqElements = new int[MAX_PQ_SIZE]; } public void enQueue(int item) throws PriorityQueueException { if (!isFull()) { pqElements[count] = item; count++; } else { throw new PriorityQueueException("PriorityQueue is full!"); } } public int delQueue() throws PriorityQueueException { if (!isEmpty()) { int min = pqElements[0]; int minIndex = 0; for (int i = 1; i < count; i++) { if (pqElements[i] < min) { min = pqElements[i]; minIndex = i; } } pqElements[minIndex] = pqElements[count - 1]; count--; return min; } else { throw new PriorityQueueException("PriorityQueue is empty!"); } } public void makeEmpty() { count = 0; } public boolean isEmpty() { return count == 0; } public boolean isFull() { return count == MAX_PQ_SIZE; } public int length() { return count; } } --------------------------------------- package boke.thread4; /** * TODO 队列异常 * * @since jdk1.6 * @author 毛正吉 * @version 1.0 * @date 2010.05.25 * */ public class PriorityQueueException extends Exception { public PriorityQueueException() { super("Queue Exception"); } public PriorityQueueException(String msg) { super(msg); } }(2) 试管剂台容器,该容器里只能放入一个试管剂。
package boke.thread4; /** * 试管剂容器 * * @since jdk1.6 * @author 毛正吉 * @version 1.0 * @date 2010.05.25 * */ public class Container { int tubeID; // 试管剂ID boolean isFull = false; // 容器里是否有试管剂 /** * 容器里放入试管剂 * * @param ID */ public synchronized void put(int ID) { if (!isFull) { // 容器里没有试管剂 tubeID = ID; // 放入试管剂 System.out.println("Alice 把试管剂:" + tubeID + " 放入到容器里"); isFull = true; // 则容器里有试管剂 notify(); // 通知 } try { wait(); // 自己等待 } catch (InterruptedException e) { e.printStackTrace(); } } /** * 从容器里取走试管剂 * * @return */ public synchronized int get() { if (!isFull) { // 容器里没有试管剂 try { wait(); // 等待 } catch (InterruptedException e) { e.printStackTrace(); } } isFull = false; // 容器里有试管剂 executeLogic(tubeID); // 执行业务逻辑 notify();// 通知 return tubeID; // 返回值 } private void executeLogic(int value) { System.out.println("Bob 从容器里取走试管剂:" + value); } }
(3) Alice
package boke.thread4; /** * 模拟Alice * * @since jdk1.6 * @author 毛正吉 * @version 1.0 * @date 2010.05.25 * */ class Alice extends Thread { Container c; // 容器 PriorityQueue pq; // 优先级队列 /** * 构造方法 * * @param c * @param pq */ Alice(Container c, PriorityQueue pq) { this.c = c; this.pq = pq; } /** * 运行任务 */ public void run() { try { while (!pq.isEmpty()) { int ID = pq.delQueue(); // 拿出优先级最高的试管剂 c.put(ID); // 放置到容器里 } } catch (PriorityQueueException e) { e.printStackTrace(); } } }
(4) Bob
package boke.thread4; /** * 模拟Bob * * @since jdk1.6 * @author 毛正吉 * @version 1.0 * @date 2010.05.25 * */ class Bob extends Thread { Container c; // 容器 PriorityQueue pq; // 优先级队列 /** * 构造方法 * * @param c * @param pq */ Bob(Container c, PriorityQueue pq) { this.c = c; this.pq = pq; } /** * 运行任务 */ public void run() { while (true) { c.get(); // Bob从容器里取出试管剂 } } }(5) 场景类Client
package boke.thread4; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * 场景类 * * @since jdk1.6 * @author 毛正吉 * @version 1.0 * @date 2010.05.25 * */ public class Client { /** * * @param args * @throws PriorityQueueException */ public static void main(String[] args) throws PriorityQueueException { Container c = new Container(); // 容器 PriorityQueue pq = new PriorityQueue(); // 优先级队列 for (int i = 19; i < 100; i++) { // 试管剂 pq.enQueue(i); } Alice alice = new Alice(c, pq); // Alice Bob bob = new Bob(c, pq); // Bob ExecutorService exec = Executors.newCachedThreadPool(); exec.execute(alice); exec.execute(bob); exec.shutdown(); } }
4. 输出结果:
Alice 把试管剂:19 放入到容器里
Bob 从容器里取走试管剂:19
Alice 把试管剂:20 放入到容器里
Bob 从容器里取走试管剂:20
Alice 把试管剂:21 放入到容器里
Bob 从容器里取走试管剂:21
Alice 把试管剂:22 放入到容器里
Bob 从容器里取走试管剂:22
Alice 把试管剂:23 放入到容器里
Bob 从容器里取走试管剂:23
Alice 把试管剂:24 放入到容器里
Bob 从容器里取走试管剂:24
Alice 把试管剂:25 放入到容器里
Bob 从容器里取走试管剂:25
Alice 把试管剂:26 放入到容器里
Bob 从容器里取走试管剂:26
Alice 把试管剂:27 放入到容器里
Bob 从容器里取走试管剂:27
Alice 把试管剂:28 放入到容器里
Bob 从容器里取走试管剂:28
Alice 把试管剂:29 放入到容器里
Bob 从容器里取走试管剂:29
Alice 把试管剂:30 放入到容器里
Bob 从容器里取走试管剂:30
Alice 把试管剂:31 放入到容器里
Bob 从容器里取走试管剂:31
Alice 把试管剂:32 放入到容器里
Bob 从容器里取走试管剂:32
Alice 把试管剂:33 放入到容器里
Bob 从容器里取走试管剂:33
Alice 把试管剂:34 放入到容器里
Bob 从容器里取走试管剂:34
Alice 把试管剂:35 放入到容器里
Bob 从容器里取走试管剂:35
Alice 把试管剂:36 放入到容器里
Bob 从容器里取走试管剂:36
Alice 把试管剂:37 放入到容器里
Bob 从容器里取走试管剂:37
Alice 把试管剂:38 放入到容器里
Bob 从容器里取走试管剂:38
Alice 把试管剂:39 放入到容器里
Bob 从容器里取走试管剂:39
Alice 把试管剂:40 放入到容器里
Bob 从容器里取走试管剂:40
Alice 把试管剂:41 放入到容器里
Bob 从容器里取走试管剂:41
Alice 把试管剂:42 放入到容器里
Bob 从容器里取走试管剂:42
Alice 把试管剂:43 放入到容器里
Bob 从容器里取走试管剂:43
Alice 把试管剂:44 放入到容器里
Bob 从容器里取走试管剂:44
Alice 把试管剂:45 放入到容器里
Bob 从容器里取走试管剂:45
Alice 把试管剂:46 放入到容器里
Bob 从容器里取走试管剂:46
Alice 把试管剂:47 放入到容器里
Bob 从容器里取走试管剂:47
Alice 把试管剂:48 放入到容器里
Bob 从容器里取走试管剂:48
Alice 把试管剂:49 放入到容器里
Bob 从容器里取走试管剂:49
Alice 把试管剂:50 放入到容器里
Bob 从容器里取走试管剂:50
Alice 把试管剂:51 放入到容器里
Bob 从容器里取走试管剂:51
Alice 把试管剂:52 放入到容器里
Bob 从容器里取走试管剂:52
Alice 把试管剂:53 放入到容器里
Bob 从容器里取走试管剂:53
Alice 把试管剂:54 放入到容器里
Bob 从容器里取走试管剂:54
Alice 把试管剂:55 放入到容器里
Bob 从容器里取走试管剂:55
Alice 把试管剂:56 放入到容器里
Bob 从容器里取走试管剂:56
Alice 把试管剂:57 放入到容器里
Bob 从容器里取走试管剂:57
Alice 把试管剂:58 放入到容器里
Bob 从容器里取走试管剂:58
Alice 把试管剂:59 放入到容器里
Bob 从容器里取走试管剂:59
Alice 把试管剂:60 放入到容器里
Bob 从容器里取走试管剂:60
Alice 把试管剂:61 放入到容器里
Bob 从容器里取走试管剂:61
Alice 把试管剂:62 放入到容器里
Bob 从容器里取走试管剂:62
Alice 把试管剂:63 放入到容器里
Bob 从容器里取走试管剂:63
Alice 把试管剂:64 放入到容器里
Bob 从容器里取走试管剂:64
Alice 把试管剂:65 放入到容器里
Bob 从容器里取走试管剂:65
Alice 把试管剂:66 放入到容器里
Bob 从容器里取走试管剂:66
Alice 把试管剂:67 放入到容器里
Bob 从容器里取走试管剂:67
Alice 把试管剂:68 放入到容器里
Bob 从容器里取走试管剂:68
Alice 把试管剂:69 放入到容器里
Bob 从容器里取走试管剂:69
Alice 把试管剂:70 放入到容器里
Bob 从容器里取走试管剂:70
Alice 把试管剂:71 放入到容器里
Bob 从容器里取走试管剂:71
Alice 把试管剂:72 放入到容器里
Bob 从容器里取走试管剂:72
Alice 把试管剂:73 放入到容器里
Bob 从容器里取走试管剂:73
Alice 把试管剂:74 放入到容器里
Bob 从容器里取走试管剂:74
Alice 把试管剂:75 放入到容器里
Bob 从容器里取走试管剂:75
Alice 把试管剂:76 放入到容器里
Bob 从容器里取走试管剂:76
Alice 把试管剂:77 放入到容器里
Bob 从容器里取走试管剂:77
Alice 把试管剂:78 放入到容器里
Bob 从容器里取走试管剂:78
Alice 把试管剂:79 放入到容器里
Bob 从容器里取走试管剂:79
Alice 把试管剂:80 放入到容器里
Bob 从容器里取走试管剂:80
Alice 把试管剂:81 放入到容器里
Bob 从容器里取走试管剂:81
Alice 把试管剂:82 放入到容器里
Bob 从容器里取走试管剂:82
Alice 把试管剂:83 放入到容器里
Bob 从容器里取走试管剂:83
Alice 把试管剂:84 放入到容器里
Bob 从容器里取走试管剂:84
Alice 把试管剂:85 放入到容器里
Bob 从容器里取走试管剂:85
Alice 把试管剂:86 放入到容器里
Bob 从容器里取走试管剂:86
Alice 把试管剂:87 放入到容器里
Bob 从容器里取走试管剂:87
Alice 把试管剂:88 放入到容器里
Bob 从容器里取走试管剂:88
Alice 把试管剂:89 放入到容器里
Bob 从容器里取走试管剂:89
Alice 把试管剂:90 放入到容器里
Bob 从容器里取走试管剂:90
Alice 把试管剂:91 放入到容器里
Bob 从容器里取走试管剂:91
Alice 把试管剂:92 放入到容器里
Bob 从容器里取走试管剂:92
Alice 把试管剂:93 放入到容器里
Bob 从容器里取走试管剂:93
Alice 把试管剂:94 放入到容器里
Bob 从容器里取走试管剂:94
Alice 把试管剂:95 放入到容器里
Bob 从容器里取走试管剂:95
Alice 把试管剂:96 放入到容器里
Bob 从容器里取走试管剂:96
Alice 把试管剂:97 放入到容器里
Bob 从容器里取走试管剂:97
Alice 把试管剂:98 放入到容器里
Bob 从容器里取走试管剂:98
Alice 把试管剂:99 放入到容器里
Bob 从容器里取走试管剂:99
评论
11 楼
wfine
2010-06-02
建议PriorityQueue 用JDK自带PriorityBlockingQueue
10 楼
mathgl
2010-06-01
producer-consumer model???
9 楼
select*from爱
2010-06-01
maozj 写道
声明: 本人在javaeye网站上发布的论坛帖子都是原创,有些题目也是原创。。。如果评为新手帖 那说明实力不够 还需自我修养。。。但如果你只是看都没看就评为新手帖,那我只能说 你与技术无缘
+1
8 楼
littleJava
2010-06-01
应该属于 生产者和消费者模式
7 楼
imhades
2010-06-01
message queue...
6 楼
maozj
2010-06-01
amwiacel 写道
对学习线程非常有用.....
呵呵 学习和分享。。。
5 楼
maozj
2010-06-01
jy1245626 写道
楼主的帖子我觉得挺好,虽然不入高人耳目,但对我来说很有用,工作了四年多了多线程的接触几乎为0。
建议je对评分进行改进
评任何一个级别的帖子都必须回帖说出理由,否则不予评贴
建议je对评分进行改进
评任何一个级别的帖子都必须回帖说出理由,否则不予评贴
谢谢支持~~ 只要每个人有心 都可以把自己好的想法发布出来 分享才快乐~~
4 楼
amwiacel
2010-06-01
对学习线程非常有用.....
3 楼
jy1245626
2010-06-01
楼主的帖子我觉得挺好,虽然不入高人耳目,但对我来说很有用,工作了四年多了多线程的接触几乎为0。
建议je对评分进行改进
评任何一个级别的帖子都必须回帖说出理由,否则不予评贴
建议je对评分进行改进
评任何一个级别的帖子都必须回帖说出理由,否则不予评贴
2 楼
maozj
2010-06-01
声明: 本人在javaeye网站上发布的论坛帖子都是原创,有些题目也是原创。。。如果评为新手帖 那说明实力不够 还需自我修养。。。但如果你只是看都没看就评为新手帖,那我只能说 你与技术无缘
1 楼
maozj
2010-06-01
新手帖? 谁评的 题目都是原创
发表评论
-
Java常用集合包适用场景
2010-10-25 08:52 42701. ArrayList 基于数组方式实现,无容量的限制 ... -
同一任务和对象锁的问题
2010-08-04 08:31 2547偶尔翻开java编程思想看看多线程的篇章,意焦突然卡在某 ... -
类的装载、连接与初始化 -- 纠正
2010-07-02 09:03 10211.首先纠正<<深入java虚拟机>> ... -
Java虚拟机生命周期和体系结构
2010-06-23 13:48 65331. Java虚拟机的生命周期 ... -
Java体系结构中的四个核心技术思想
2010-06-22 14:27 2117看着瓜娃瓜娃,最近突然很有兴趣想了解下Java这杯&q ... -
Java中的垃圾回收与对象生命周期
2010-06-21 08:23 3066在<<Java编程思想>>书中 ... -
通过系统缓冲字节流类提高IO操作效率
2010-06-01 08:35 1145/** * 通过系统缓冲字节流类提高IO操作效率 ... -
通过系统缓冲字符流类提高IO操作效率
2010-06-01 08:34 1326/** * 通过系统缓冲字符流类提高IO操作效率 ... -
通过自定义缓冲区提高IO操作效率
2010-06-01 08:33 1096/****************************** ... -
java多态性总结二
2010-05-31 11:49 1027多态性:发送消息给某个对象,让该对象自行决定响应何种行为。 ... -
数值包装类 - 性能优化
2010-05-31 08:36 10151. 良好的风格 Double d = new Dou ... -
字符串toCharArray - 性能优化
2010-05-31 08:35 17561. 良好的风格: String s = "a ... -
字符串的length - 性能优化
2010-05-31 08:34 1283尽量提前计算length: (1) 好的风格: Str ... -
字符串累加 - 性能优化
2010-05-31 08:33 12571. 测试代码: package boke.string; ... -
用Java线程池技术模拟 - 容器中的最大值输出及排序输出
2010-05-31 08:23 13051. 输出结果: 排序前的数组: 容器0: 6 15 82 ... -
Java的多态性总结
2010-05-26 10:27 13281. Java的多态性总结: (1) 首先, 要明确Chil ... -
从这个例子你可以想到JAVA多态的什么特性?
2010-05-24 09:03 2973不加一句注解,请看下面内容:你会想到JAVA多态的什么特性? ... -
this是个很巧妙地东西
2010-05-24 09:01 947递归引起堆栈异常。。。 package com.maozj.j ... -
JAVA内存管理的一些经验.
2010-05-24 08:59 9571. 尽早释放无用对象的引用。 A a = new A( ... -
JAVA多态特殊性
2010-05-24 08:49 9221. 只有非private方法才可以被覆盖 2. 普通方法是多 ...
相关推荐
Java开发案例-springboot-61-整合asyncTool京东多线程编排工具-源代码+文档.rar Java开发案例-springboot-61-整合asyncTool京东多线程编排工具-源代码+文档.rar Java开发案例-springboot-61-整合asyncTool京东多线程...
Java多线程与线程安全实践-基于Http协议的断点续传 Java多线程与线程安全实践-基于Http协议的断点续传 Java多线程与线程安全实践-基于Http协议的断点续传 Java多线程与线程安全实践-基于Http协议的断点...Java多线程与
JAVA多线程与线程安全实践-基于Http协议的断点续传 JAVA多线程与线程安全实践-基于Http协议的断点续传 JAVA多线程与线程安全实践-基于Http协议的断点续传 JAVA多线程与线程安全实践-基于Http协议的断点续传 JAVA多...
Java线程:概念与原理 Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:线程的调度-...
Java多线程与线程安全实践-基于Http协议的断点续传Java多线程与线程安全实践-基于Http协议的断点续传Java多线程与线程安全实践-基于Http协议的断点续传Java多线程与线程安全实践-基于Http协议的断点续传Java多线程与...
Java多线程与线程安全实践-基于Http协议的断点续传(毕业设计+课程设计)Java多线程与线程安全实践-基于Http协议的断点续传(毕业设计+课程设计)Java多线程与线程安全实践-基于Http协议的断点续传(毕业设计+课程...
基于Java多线程与线程安全实践-基于Http协议的断点续传设计与实现.zip基于Java多线程与线程安全实践-基于Http协议的断点续传设计与实现.zip基于Java多线程与线程安全实践-基于Http协议的断点续传设计与实现.zip基于...
javaweb毕业设计-Java多线程与线程安全实践-基于Http协议的断点续传(可做课程设计).rarjavaweb毕业设计-Java多线程与线程安全实践-基于Http协议的断点续传(可做课程设计).rarjavaweb毕业设计-Java多线程与线程安全...
Java 模拟线程并发是编程领域中的一个重要概念,尤其在多核处理器和高并发应用中,理解并熟练掌握线程并发技术对于提升程序性能至关重要。在Java中,线程并发可以通过多种方式实现,包括继承Thread类、实现Runnable...
基于java的开发源码-超简单Java多线程填表源码.zip 基于java的开发源码-超简单Java多线程填表源码.zip 基于java的开发源码-超简单Java多线程填表源码.zip 基于java的开发源码-超简单Java多线程填表源码.zip 基于java...
基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码.zip 基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码.zip 基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码....
总的来说,回调在Java线程间通信中起到桥梁的作用,使得线程能够以非阻塞的方式互相协作,提高了程序的并发性能和响应速度。理解并熟练掌握回调以及其他线程通信机制是Java并发编程的关键,这对于开发高效、稳定的多...
这个项目可能是用Eclipse IDE创建的一个Java工程,包含示例代码来模拟多线程环境下JDBC的资源竞争问题,并提供解决方案。开发者可以通过运行这些示例,观察并发问题的表现,学习如何避免和解决这些问题。 6. 性能...
[计算机毕设]基于java的多线程与线程安全实践-基于Http协议的断点续传系统设计与实现(源代码).zip [计算机毕设]基于java的多线程与线程安全实践-基于Http协议的断点续传系统设计与实现(源代码).zip [计算机毕设]基于...
通过这10个视频的学习,你将能够掌握Java线程的基本操作,了解线程的创建、执行、协作和管理,为实现高效的并发程序打下坚实的基础。在实际开发中,结合这些知识,你可以编写出更加健壮、性能优异的多线程应用程序。
JAVA多线程编程详解-详细操作例子JAVA多线程编程详解-详细操作例子
基于java的开发源码-多线程程序死锁检查 JCarder.zip 基于java的开发源码-多线程程序死锁检查 JCarder.zip 基于java的开发源码-多线程程序死锁检查 JCarder.zip 基于java的开发源码-多线程程序死锁检查 JCarder.zip ...