Skip to content

Commit a16f144

Browse files
BU ShehuiBU Shehui
authored andcommitted
modified ch7
1 parent b5216e8 commit a16f144

File tree

1 file changed

+5
-38
lines changed

1 file changed

+5
-38
lines changed

ch7.md

Lines changed: 5 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -639,48 +639,15 @@ class SenderThread extends Thread{
639639
640640
641641
~~~
642-
<!---
643-
wait()、notify()和notifyAll()
644-
645-
646-
647-
【例10.14】~【例10.15】线程间通信示例--->
648-
649-
<!---
650-
java.util.Timer和java.util.TimerTask
651-
652-
Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。Timer可以计划执行一个任务一次或反复多次。TimerTask是一个抽象类,它的子类代表一个可以被Timer计划的任务
653-
【例10.16】~【例10.17】任务调度线程示例
654-
655-
##线程池
656-
所有线程都隶属于一个线程组。默认情况下,线程属于主线程组(系统线程组、默认线程组)。程序中也可以创建新的线程组,并作为参数传递给线程的构造方法,以指定该线程是某一个线程组的线程
657-
线程组也必须从属于其他线程组
658-
--->
659642
660643
##练习
661644
662-
1.创建线程有哪两种方法?并进行比较,说明各自特点。
663-
2.简述线程的生命周期。
664-
3.设计一个程序,每隔一秒显示一次系统时间。
665-
4.设计一个程序,该程序包含两个线程,一个线程做冒泡排序,一个线程做插入排序。
666-
5.设计一个生产者-消费者程序。对一个对象(堆栈)进行操作,生产者是一个压入线程,它不断向堆栈中压入数据;消费者是一个弹出线程,它不断从堆栈中弹出数据。设计的程序应避免共享资源带来的问题,使两个线程能够正确地对堆栈对象进行操作。
667-
668-
669-
<!---
670-
##接口
645+
1. 创建线程有哪两种方法?并进行比较,说明各自特点。
646+
2. 简述线程的生命周期。
647+
3. 设计一个程序,每隔一秒显示一次系统时间。
648+
4. 设计一个程序,该程序包含两个线程,一个线程做冒泡排序,一个线程做插入排序。
649+
5.设计一个生产者-消费者程序。对一个对象(堆栈)进行操作,生产者是一个压入线程,它不断向堆栈中压入数据;消费者是一个弹出线程,它不断从堆栈中弹出数据。设计的程序应避免共享资源带来的问题,使两个线程能够正确地对堆栈对象进行操作。
671650
672-
抽象类和接口
673-
674-
初始化块
675-
676-
初始化块用来和构造方法一起初始化对象。初始化块是封装在一对大括号内的语句块,初始化块在类的定义体内,但不能包含在方法体内或构造方法体内。初始化块分为对象(实例)初始化块和静态(类)初始化块。
677-
静态数据成员、初始化块和构造方法的执行顺序如下:
678-
(1) 当第一次使用类时,首先装载类,初始化静态数据成员,然后执行类的静态初始化块。
679-
(2) 当使用new运算符创建类的对象时,按下述三个步骤执行:
680-
① 调用父类的构造方法(在调用父类的构造方法时,也按照这三个步骤执行)。
681-
② 初始化实例数据域,执行对象初始化块。
682-
③ 执行构造方法。
683-
--->
684651
685652
---
686653

0 commit comments

Comments
 (0)