Skip to content

Commit 9175787

Browse files
basics code for cz
queue
1 parent 7d59bf3 commit 9175787

7 files changed

Lines changed: 237 additions & 3 deletions

File tree

.idea/compiler.xml

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/uiDesigner.xml

Lines changed: 124 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package com.basics.queue.QueueQu;
2+
3+
import com.basics.queue.utils.User;
4+
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
import java.util.concurrent.LinkedBlockingQueue;
8+
import java.util.concurrent.TimeUnit;
9+
10+
/**
11+
* @PACKAGE_NAME: com.basics.queue.QueueQu
12+
* @PROJECT_NAME: JavaCode
13+
* @Date: 2018/4/10
14+
* @author: chenzhuo
15+
* LinkedBlockingQueue
16+
* 由链表实现的有界队列阻塞队列
17+
*/
18+
public class TestLinkedBlockingQueue {
19+
public static void main(String [] args){
20+
test();
21+
}
22+
23+
public static void test(){
24+
//最好初始化给值
25+
//默认大小为Integer.MAX_VALUE
26+
LinkedBlockingQueue<User> linkedBlockingQueue = new LinkedBlockingQueue<User>(4);
27+
User user = new User("张三",11);
28+
User user1 = new User("张三1",11);
29+
User user2 = new User("张三2",11);
30+
User user3 = new User("张三3",11);
31+
User user4 = new User("张三4",11);
32+
List<User> list = new ArrayList<User>();
33+
list.add(user);
34+
list.add(user1);
35+
list.add(user2);
36+
list.add(user3);
37+
// list.add(user4);
38+
//Exception in thread "main" java.lang.IllegalStateException: Queue full
39+
linkedBlockingQueue.addAll(list);
40+
try {
41+
//移除头元素
42+
User poll = linkedBlockingQueue.poll(10,TimeUnit.SECONDS);
43+
System.err.println("user Name : " + poll.getUserName());
44+
//10秒钟内如果有释放的 就添加成功 true
45+
// else false
46+
boolean b = linkedBlockingQueue.offer(user4,10,TimeUnit.SECONDS);
47+
System.err.println("b : " + b);
48+
49+
User peek = linkedBlockingQueue.peek();
50+
System.err.println("usre Name : " + peek.getUserName());
51+
52+
linkedBlockingQueue.remove(user2); linkedBlockingQueue.add(user1);
53+
54+
} catch (InterruptedException e) {
55+
System.err.println(e.getMessage());
56+
e.printStackTrace();
57+
58+
}
59+
System.err.println("size : " + linkedBlockingQueue.size());
60+
linkedBlockingQueue.forEach(l->System.err.println("getName :" + l.getUserName()));
61+
62+
}
63+
64+
public static class TestLinkedBlockingQueueRun implements Runnable{
65+
66+
@Override
67+
public void run() {
68+
69+
}
70+
}
71+
}

src/main/java/com/basics/queue/PriorityBlockingQueueQu/TestPriorityBlockingQueue.java renamed to src/main/java/com/basics/queue/QueueQu/TestPriorityBlockingQueue.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.basics.queue.PriorityBlockingQueueQu;
1+
package com.basics.queue.QueueQu;
22

33
import com.basics.queue.utils.User;
44

@@ -11,6 +11,10 @@
1111
* @PROJECT_NAME: JavaCode
1212
* @Date: 2018/4/9
1313
* @author: chenzhuo
14+
* PriorityBlockingQueue优先级队列
15+
* 优先队列不会有阻塞 永远不会阻塞
16+
* 自动扩容不会阻塞~
17+
*
1418
*/
1519
public class TestPriorityBlockingQueue {
1620

@@ -20,7 +24,8 @@ public static void main(String []args){
2024

2125
public static void test(){
2226
PriorityBlockingQueue<User> queue =
23-
new PriorityBlockingQueue<User>();
27+
new PriorityBlockingQueue<User>(4);
28+
2429
User user = new User("张三",11);
2530
User user1 = new User("张三1",11);
2631
User user2 = new User("张三2",11);

src/main/java/com/basics/queue/PriorityBlockingQueueQu/package-info.java renamed to src/main/java/com/basics/queue/QueueQu/package-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@
66
* PriorityBlockingQueue
77
*
88
*/
9-
package com.basics.queue.PriorityBlockingQueueQu;
9+
package com.basics.queue.QueueQu;

0 commit comments

Comments
 (0)