Skip to content

Commit bd9c28e

Browse files
committed
updates java basic
1 parent 532996d commit bd9c28e

1 file changed

Lines changed: 16 additions & 11 deletions

File tree

第5章 多线程/多线程.md

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ public static ExecutorService newFixedThreadPool(int nThreads)
187187
- 调用如下方法即可
188188
- Future<?> submit(Runnable task)
189189
提交一个 Runnable 任务用于执行,并返回一个表示该任务的 Future。
190-
- <T> Future<T> submit(Callable<T> task)
190+
- <T> Future<T> submit(Callable<T> task)
191191
提交一个返回值的任务用于执行,返回一个表示任务的未决结果的 Future
192192
- 结束线程:shutdown() 关闭线程
193193

@@ -309,7 +309,7 @@ synchronized(对象){
309309
```java
310310
package cn.itcast;
311311

312-
//卖票程序的同步代码块实现示例
312+
//卖票程序的同步代码块实现示例
313313
class Ticket implements Runnable {
314314
private int num = 10;
315315
Object obj = new Object();
@@ -362,7 +362,7 @@ class TicketDemo {
362362
```java
363363
package cn.itcast;
364364

365-
//卖票程序的同步代码块实现示例
365+
//卖票程序的同步代码块实现示例
366366
class Ticket implements Runnable {
367367
// 定义100张票
368368
private static int tickets = 10;
@@ -475,7 +475,7 @@ class SellTicket implements Runnable {
475475
/*
476476
* 虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁,
477477
* 为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock。
478-
*
478+
*
479479
* Lock: void lock(): 获取锁。 void unlock():释放锁。 ReentrantLock是Lock的实现类.
480480
*/
481481
public class SellTicketDemo {
@@ -718,11 +718,16 @@ Thread(ThreadGroup group,Runnable target, String name) // 给线程设置分组
718718
创建一个线程池对象,控制要创建几个线程
719719
- public static ExecutorService newSingleThreadExecutor():
720720
创建一个使用单个 worker 线程的 Executor
721-
这些方法的返回值是ExecutorService对象,该对象表示一个线程池,可以执行Runnable对象或者Callable对象代表的线程。它提供了如下方法:
722-
- Future<?>submit(Runnable task)
723-
提交一个 Runnable 任务用于执行,并返回一个表示该任务的 Future
724-
- <T>Future<T> submit(Callable<T>task)
725-
提交一个返回值的任务用于执行,返回一个表示任务的未决结果的 Future。
721+
722+
这些方法的返回值是ExecutorService对象,该对象表示一个线程池,可以执行Runnable对象或者Callable对象代表的线程。它提供了如下方法:
723+
724+
- Future<?> submit(Runnable task)
725+
726+
提交一个Runnable任务用于执行,并返回一个表示该任务的 Future
727+
728+
- <T>Future<T> submit(Callable<T> task)
729+
730+
提交一个Callable任务用于执行,返回一个表示任务的未决结果的Future
726731

727732
# **8. 定时器的使用**
728733

@@ -742,7 +747,7 @@ Timer:一种工具,线程用其安排以后在后台线程中执行的任务
742747
2. 实现Runnable接口,new Thread(new Runnable(){…}){…};
743748
3. 实现Callable接口。和线程池结合。
744749

745-
## **9.2 实现Runnable好处**
750+
## **9.2 实现Runnable好处**
746751

747752
- 将线程的任务从线程的子类中分离出来,进行了单独的封装,实现数据和程序分离,按照面向对象的思想将任务封装成对象
748753
- 避免了Java单继承的局限性。所以,创建线程的第二种方式较为常用
@@ -778,4 +783,4 @@ Timer:一种工具,线程用其安排以后在后台线程中执行的任务
778783
| interrupt( ) | 中断线程 |
779784

780785
## **9.6 线程的生命周期**
781-
新建,就绪,运行,阻塞(同步阻塞,等待阻塞,其他阻塞),死亡
786+
新建,就绪,运行,阻塞(同步阻塞,等待阻塞,其他阻塞),死亡

0 commit comments

Comments
 (0)