Skip to content

Commit 2872dfe

Browse files
committed
学习总结
学习总结
1 parent ae7cf19 commit 2872dfe

File tree

4 files changed

+262
-0
lines changed

4 files changed

+262
-0
lines changed
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
<html>
2+
<head>
3+
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
4+
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
5+
<meta content="text/css" http-equiv="Content-Style-Type">
6+
<title>MultiThreading</title>
7+
</head>
8+
<body>
9+
<h1 align="center" class="root">
10+
<a name="2ai3aeb5qcgo8erk2l2b5mr40s">MultiThreading</a>
11+
</h1>
12+
<div align="center" class="globalOverview">
13+
<img src="MultiThreading_files/images/MultiThreading.jpg"></div>
14+
<h2 class="topic">
15+
<a name="1rvgo3r2hr9vpl5ju5cb6noetq">线程实现</a>
16+
</h2>
17+
<h3 class="topic">
18+
<a name="2mlkal03j9di2g9i2638p9ndp3">&nbsp;匿名类</a>
19+
</h3>
20+
<h3 class="topic">
21+
<a name="4cpogab0ua3da45qm7qgpqm2qg">&nbsp;实现Runnable接口</a>
22+
</h3>
23+
<h3 class="topic">
24+
<a name="3888i0rgibs95b440h6mat3odf">&nbsp;继承Thread类</a>
25+
</h3>
26+
<h2 class="topic">
27+
<a name="747qknu2ad2mjaenhq24uqihnp">volatile</a>
28+
</h2>
29+
<h3 class="topic">
30+
<a name="3ksaq43i542o5qfkihgpjs0us8">&nbsp;该关键字修饰的字段 可以确保任何线程读取该字段时都是最近写入的值</a>
31+
</h3>
32+
<h2 class="topic">
33+
<a name="1ghoddkod9q58bempq98fvv775">锁对象</a>
34+
</h2>
35+
<h3 class="topic">
36+
<a name="28ktstsbtqim3gopd74b86062d">&nbsp;使用sychronized 多个方法时效率较低</a>
37+
</h3>
38+
<h3 class="topic">
39+
<a name="1d509006v8v180eev9252nkmlc">&nbsp;使用lock对象 较sychronized效率高</a>
40+
</h3>
41+
<h3 class="topic">
42+
<a name="1tgkhng6h88qf3b4tia7rtl8da">&nbsp;ReentrantLocks</a>
43+
</h3>
44+
<h2 class="topic">
45+
<a name="4qjpesabt4vhgoudrg8vuqfm93">线程池</a>
46+
</h2>
47+
<h3 class="topic">
48+
<a name="541a4q8ubi56otjnlm8fpf0mqe">&nbsp;JDK提供的线程池类</a>
49+
</h3>
50+
<h3 class="topic">
51+
<a name="0f2in7esgohtqke29td5rtn5v5">&nbsp;&nbsp;java.util.concurrent</a>
52+
</h3>
53+
<p class="topicImage">
54+
<img height="223" src="MultiThreading_files/17dkbffcnmf1bo74p21iki0r09.png" width="400"></p>
55+
<h2 class="topic">
56+
<a name="287ugbgl24fj5k57cut50sa0gc">countDownLatch</a>
57+
</h2>
58+
<h3 class="topic">
59+
<a name="0k1lrkg5ofuras3jr8rf7c1dfi">&nbsp;多个线程共享一个CountDownLatch实例,直到CountDownLatch实例声明的次数减为0。</a>
60+
</h3>
61+
<h3 class="topic">
62+
<a name="2ale8ed76qqnop8eeq6vlld5hv">&nbsp;典型例子是多个部门协同完成任务,Boss最后拍板</a>
63+
</h3>
64+
<h2 class="topic">
65+
<a name="15i2l6fkh6aodkkb38aqudhpap">ProducerConsumer</a>
66+
</h2>
67+
<h3 class="topic">
68+
<a name="4mbf867q163ipe87mg2vc98oab">&nbsp;使用BlockingQueue</a>
69+
</h3>
70+
<h3 class="topic">
71+
<a name="24appi3vrd0ov77rhglsdbahmv">&nbsp;&nbsp;BlockingQueue 线程安全</a>
72+
</h3>
73+
<h3 class="topic">
74+
<a name="6kbj69k81jtm6g01f5meqaaled">&nbsp;&nbsp;常用方法</a>
75+
</h3>
76+
<h3 class="topic">
77+
<a name="39ndd3mrr0hoqqn2ktu24ljf6r">&nbsp;&nbsp;&nbsp;put</a>
78+
</h3>
79+
<h3 class="topic">
80+
<a name="3enlr9v8f1pp61c1ctd6tfurup">&nbsp;&nbsp;&nbsp;take</a>
81+
</h3>
82+
<h3 class="topic">
83+
<a name="0kg99vjeo7bo6jnojor8v4e5ed">&nbsp;使用信号量</a>
84+
</h3>
85+
<h3 class="topic">
86+
<a name="20q4h8iqsjgcpb2lblrj7lfvk5">&nbsp;&nbsp;单个信号量</a>
87+
</h3>
88+
<h3 class="topic">
89+
<a name="7nfng5i860n26p28dkco8imv62">&nbsp;&nbsp;&nbsp;使用wait 和notify</a>
90+
</h3>
91+
<h3 class="topic">
92+
<a name="4j8jie7gotnlvned4kitj7qrpm">&nbsp;&nbsp;&nbsp;使用锁对象的await 和 signal</a>
93+
</h3>
94+
<h3 class="topic">
95+
<a name="0q88n5lj1prt6ib3e84l4bmdmk">&nbsp;&nbsp;&nbsp;Semaphore 资源为1</a>
96+
</h3>
97+
<h3 class="topic">
98+
<a name="1ol9vp2cqoao9efo83gci7qud6">&nbsp;&nbsp;多个信号量</a>
99+
</h3>
100+
<h3 class="topic">
101+
<a name="62dacr4qr5tmupukgf00u3clol">&nbsp;&nbsp;&nbsp;Semaphore</a>
102+
</h3>
103+
<h3 class="topic">
104+
<a name="4uic3of5m5n2tqlrbvii8sqe9k">&nbsp;&nbsp;&nbsp;&nbsp;acquire()</a>
105+
</h3>
106+
<h3 class="topic">
107+
<a name="5c6bmmr8ui7ko7s13otsbmcg83">&nbsp;&nbsp;&nbsp;&nbsp;release()</a>
108+
</h3>
109+
<h2 class="topic">
110+
<a name="27j60mml1ffj7v863rpaulot2u">CallableAndFuture</a>
111+
</h2>
112+
<h3 class="topic">
113+
<a name="49kuv2rv0b0njuu5jvp30cl083">&nbsp;Callable</a>
114+
</h3>
115+
<h3 class="topic">
116+
<a name="19is2tneudmsrmom7u0sfkgqt2">&nbsp;&nbsp;Callable和Runnable的区别</a>
117+
</h3>
118+
<h3 class="topic">
119+
<a name="5i3gc8dbbfqupfber2pp1nbp6j">&nbsp;&nbsp;&nbsp;Runnable 引入在JDK1.0 Callable&lt;T&gt;引入在JDK1.5</a>
120+
</h3>
121+
<h3 class="topic">
122+
<a name="3berchkiiddj9n48ihii00h4dj">&nbsp;&nbsp;&nbsp;Callable 待参数回调可以和Future配合使用</a>
123+
</h3>
124+
<h3 class="topic">
125+
<a name="11c182rmo4pcpoe4js7amjfc7k">&nbsp;Future</a>
126+
</h3>
127+
<h3 class="topic">
128+
<a name="19vvmn6akdg9gjnbji8vrqc76f">&nbsp;&nbsp;Future允许你控制线程和查看线程状态</a>
129+
</h3>
130+
</body>
131+
</html>
25.3 KB
Loading
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
<html>
2+
<head>
3+
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
4+
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
5+
<meta content="text/css" http-equiv="Content-Style-Type">
6+
<title>MultiThreading</title>
7+
</head>
8+
<body>
9+
<h1 align="center" class="root">
10+
<a name="2ai3aeb5qcgo8erk2l2b5mr40s">MultiThreading</a>
11+
</h1>
12+
<div align="center" class="globalOverview">
13+
<img src="MultiThreading_files/images/MultiThreading.jpg"></div>
14+
<h2 class="topic">
15+
<a name="1rvgo3r2hr9vpl5ju5cb6noetq">线程实现</a>
16+
</h2>
17+
<h3 class="topic">
18+
<a name="2mlkal03j9di2g9i2638p9ndp3">&nbsp;匿名类</a>
19+
</h3>
20+
<h3 class="topic">
21+
<a name="4cpogab0ua3da45qm7qgpqm2qg">&nbsp;实现Runnable接口</a>
22+
</h3>
23+
<h3 class="topic">
24+
<a name="3888i0rgibs95b440h6mat3odf">&nbsp;继承Thread类</a>
25+
</h3>
26+
<h2 class="topic">
27+
<a name="747qknu2ad2mjaenhq24uqihnp">volatile</a>
28+
</h2>
29+
<h3 class="topic">
30+
<a name="3ksaq43i542o5qfkihgpjs0us8">&nbsp;该关键字修饰的字段 可以确保任何线程读取该字段时都是最近写入的值</a>
31+
</h3>
32+
<h2 class="topic">
33+
<a name="1ghoddkod9q58bempq98fvv775">锁对象</a>
34+
</h2>
35+
<h3 class="topic">
36+
<a name="28ktstsbtqim3gopd74b86062d">&nbsp;使用sychronized 多个方法时效率较低</a>
37+
</h3>
38+
<h3 class="topic">
39+
<a name="1d509006v8v180eev9252nkmlc">&nbsp;使用lock对象 较sychronized效率高</a>
40+
</h3>
41+
<h3 class="topic">
42+
<a name="1tgkhng6h88qf3b4tia7rtl8da">&nbsp;ReentrantLocks</a>
43+
</h3>
44+
<h2 class="topic">
45+
<a name="4qjpesabt4vhgoudrg8vuqfm93">线程池</a>
46+
</h2>
47+
<h3 class="topic">
48+
<a name="541a4q8ubi56otjnlm8fpf0mqe">&nbsp;JDK提供的线程池类</a>
49+
</h3>
50+
<h3 class="topic">
51+
<a name="0f2in7esgohtqke29td5rtn5v5">&nbsp;&nbsp;java.util.concurrent</a>
52+
</h3>
53+
<p class="topicImage">
54+
<img height="223" src="MultiThreading_files/17dkbffcnmf1bo74p21iki0r09.png" width="400"></p>
55+
<h2 class="topic">
56+
<a name="287ugbgl24fj5k57cut50sa0gc">countDownLatch</a>
57+
</h2>
58+
<h3 class="topic">
59+
<a name="0k1lrkg5ofuras3jr8rf7c1dfi">&nbsp;多个线程共享一个CountDownLatch实例,直到CountDownLatch实例声明的次数减为0。</a>
60+
</h3>
61+
<h3 class="topic">
62+
<a name="2ale8ed76qqnop8eeq6vlld5hv">&nbsp;典型例子是多个部门协同完成任务,Boss最后拍板</a>
63+
</h3>
64+
<h2 class="topic">
65+
<a name="15i2l6fkh6aodkkb38aqudhpap">ProducerConsumer</a>
66+
</h2>
67+
<h3 class="topic">
68+
<a name="4mbf867q163ipe87mg2vc98oab">&nbsp;使用BlockingQueue</a>
69+
</h3>
70+
<h3 class="topic">
71+
<a name="24appi3vrd0ov77rhglsdbahmv">&nbsp;&nbsp;BlockingQueue 线程安全</a>
72+
</h3>
73+
<h3 class="topic">
74+
<a name="6kbj69k81jtm6g01f5meqaaled">&nbsp;&nbsp;常用方法</a>
75+
</h3>
76+
<h3 class="topic">
77+
<a name="39ndd3mrr0hoqqn2ktu24ljf6r">&nbsp;&nbsp;&nbsp;put</a>
78+
</h3>
79+
<h3 class="topic">
80+
<a name="3enlr9v8f1pp61c1ctd6tfurup">&nbsp;&nbsp;&nbsp;take</a>
81+
</h3>
82+
<h3 class="topic">
83+
<a name="0kg99vjeo7bo6jnojor8v4e5ed">&nbsp;使用信号量</a>
84+
</h3>
85+
<h3 class="topic">
86+
<a name="20q4h8iqsjgcpb2lblrj7lfvk5">&nbsp;&nbsp;单个信号量</a>
87+
</h3>
88+
<h3 class="topic">
89+
<a name="7nfng5i860n26p28dkco8imv62">&nbsp;&nbsp;&nbsp;使用wait 和notify</a>
90+
</h3>
91+
<h3 class="topic">
92+
<a name="4j8jie7gotnlvned4kitj7qrpm">&nbsp;&nbsp;&nbsp;使用锁对象的await 和 signal</a>
93+
</h3>
94+
<h3 class="topic">
95+
<a name="0q88n5lj1prt6ib3e84l4bmdmk">&nbsp;&nbsp;&nbsp;Semaphore 资源为1</a>
96+
</h3>
97+
<h3 class="topic">
98+
<a name="1ol9vp2cqoao9efo83gci7qud6">&nbsp;&nbsp;多个信号量</a>
99+
</h3>
100+
<h3 class="topic">
101+
<a name="62dacr4qr5tmupukgf00u3clol">&nbsp;&nbsp;&nbsp;Semaphore</a>
102+
</h3>
103+
<h3 class="topic">
104+
<a name="4uic3of5m5n2tqlrbvii8sqe9k">&nbsp;&nbsp;&nbsp;&nbsp;acquire()</a>
105+
</h3>
106+
<h3 class="topic">
107+
<a name="5c6bmmr8ui7ko7s13otsbmcg83">&nbsp;&nbsp;&nbsp;&nbsp;release()</a>
108+
</h3>
109+
<h2 class="topic">
110+
<a name="27j60mml1ffj7v863rpaulot2u">CallableAndFuture</a>
111+
</h2>
112+
<h3 class="topic">
113+
<a name="49kuv2rv0b0njuu5jvp30cl083">&nbsp;Callable</a>
114+
</h3>
115+
<h3 class="topic">
116+
<a name="19is2tneudmsrmom7u0sfkgqt2">&nbsp;&nbsp;Callable和Runnable的区别</a>
117+
</h3>
118+
<h3 class="topic">
119+
<a name="5i3gc8dbbfqupfber2pp1nbp6j">&nbsp;&nbsp;&nbsp;Runnable 引入在JDK1.0 Callable&lt;T&gt;引入在JDK1.5</a>
120+
</h3>
121+
<h3 class="topic">
122+
<a name="3berchkiiddj9n48ihii00h4dj">&nbsp;&nbsp;&nbsp;Callable 待参数回调可以和Future配合使用</a>
123+
</h3>
124+
<h3 class="topic">
125+
<a name="11c182rmo4pcpoe4js7amjfc7k">&nbsp;Future</a>
126+
</h3>
127+
<h3 class="topic">
128+
<a name="19vvmn6akdg9gjnbji8vrqc76f">&nbsp;&nbsp;Future允许你控制线程和查看线程状态</a>
129+
</h3>
130+
</body>
131+
</html>
81.8 KB
Loading

0 commit comments

Comments
 (0)