File tree 4 files changed +12
-10
lines changed
4 files changed +12
-10
lines changed Original file line number Diff line number Diff line change 68
68
- 实现 Callable 接口;
69
69
- 继承 Thread 类。
70
70
71
- 实现 Runnable 和 Callable 接口的类只能当做一个可以在线程中运行的任务,不是真正意义上的线程,因此最后还需要通过 Thread 来调用。可以说任务是通过线程驱动从而执行的 。
71
+ 实现 Runnable 和 Callable 接口的类只能当做一个可以在线程中运行的任务,不是真正意义上的线程,因此最后还需要通过 Thread 来调用。可以理解为任务是通过线程驱动从而执行的 。
72
72
73
73
## 实现 Runnable 接口
74
74
75
- 需要实现 run() 方法。
76
-
77
- 通过 Thread 调用 start() 方法来启动线程。
75
+ 需要实现接口中的 run() 方法。
78
76
79
77
``` java
80
78
public class MyRunnable implements Runnable {
79
+ @Override
81
80
public void run () {
82
81
// ...
83
82
}
84
83
}
85
84
```
86
85
86
+ 使用 Runnable 实例再创建一个 Thread 实例,然后调用 Thread 实例的 start() 方法来启动线程。
87
+
87
88
``` java
88
89
public static void main(String [] args) {
89
90
MyRunnable instance = new MyRunnable ();
Original file line number Diff line number Diff line change 208
208
select 和 poll 的功能基本相同,不过在一些实现细节上有所不同。
209
209
210
210
- select 会修改描述符,而 poll 不会;
211
- - select 的描述符类型使用数组实现,FD_SETSIZE 大小默认为 1024,因此默认只能监听 1024 个描述符。如果要监听更多描述符的话,需要修改 FD_SETSIZE 之后重新编译;而 poll 没有描述符数量的限制;
211
+ - select 的描述符类型使用数组实现,FD_SETSIZE 大小默认为 1024,因此默认只能监听少于 1024 个描述符。如果要监听更多描述符的话,需要修改 FD_SETSIZE 之后重新编译;而 poll 没有描述符数量的限制;
212
212
- poll 提供了更多的事件类型,并且对描述符的重复利用上比 select 高。
213
213
- 如果一个线程对某个描述符调用了 select 或者 poll,另一个线程关闭了该描述符,会导致调用结果不确定。
214
214
Original file line number Diff line number Diff line change 68
68
- 实现 Callable 接口;
69
69
- 继承 Thread 类。
70
70
71
- 实现 Runnable 和 Callable 接口的类只能当做一个可以在线程中运行的任务,不是真正意义上的线程,因此最后还需要通过 Thread 来调用。可以说任务是通过线程驱动从而执行的 。
71
+ 实现 Runnable 和 Callable 接口的类只能当做一个可以在线程中运行的任务,不是真正意义上的线程,因此最后还需要通过 Thread 来调用。可以理解为任务是通过线程驱动从而执行的 。
72
72
73
73
## 实现 Runnable 接口
74
74
75
- 需要实现 run() 方法。
76
-
77
- 通过 Thread 调用 start() 方法来启动线程。
75
+ 需要实现接口中的 run() 方法。
78
76
79
77
``` java
80
78
public class MyRunnable implements Runnable {
79
+ @Override
81
80
public void run () {
82
81
// ...
83
82
}
84
83
}
85
84
```
86
85
86
+ 使用 Runnable 实例再创建一个 Thread 实例,然后调用 Thread 实例的 start() 方法来启动线程。
87
+
87
88
``` java
88
89
public static void main(String [] args) {
89
90
MyRunnable instance = new MyRunnable ();
Original file line number Diff line number Diff line change 208
208
select 和 poll 的功能基本相同,不过在一些实现细节上有所不同。
209
209
210
210
- select 会修改描述符,而 poll 不会;
211
- - select 的描述符类型使用数组实现,FD_SETSIZE 大小默认为 1024,因此默认只能监听 1024 个描述符。如果要监听更多描述符的话,需要修改 FD_SETSIZE 之后重新编译;而 poll 没有描述符数量的限制;
211
+ - select 的描述符类型使用数组实现,FD_SETSIZE 大小默认为 1024,因此默认只能监听少于 1024 个描述符。如果要监听更多描述符的话,需要修改 FD_SETSIZE 之后重新编译;而 poll 没有描述符数量的限制;
212
212
- poll 提供了更多的事件类型,并且对描述符的重复利用上比 select 高。
213
213
- 如果一个线程对某个描述符调用了 select 或者 poll,另一个线程关闭了该描述符,会导致调用结果不确定。
214
214
You can’t perform that action at this time.
0 commit comments