Java并发、文件操作与网络编程全解析
1. 线程与并发
在Java编程中,线程中断和阻塞队列是并发编程里的重要概念。当线程的中断状态被设置时,如果尝试调用阻塞I/O方法,会有相应的反应。同样,若线程在 java.nio.channels.Selector 的 select() 方法中被阻塞,或者调用 select() 方法时中断状态已设置, select() 会停止阻塞并立即返回,且不会抛出异常,线程会直接唤醒。
阻塞队列是多线程编程中常用的模式, java.util.concurrent 扩展了 Queue 接口, BlockingQueue 定义了 put() 和 take() 方法,用于添加和移除队列元素,必要时会阻塞直到队列有空间或有元素可移除。 java.util.concurrent 提供了五种 BlockingQueue 的实现:
| 队列类型 | 特点 |
| ---- | ---- |
| ArrayBlockingQueue | 基于数组实现,创建时容量固定,可工作在“公平”模式,以牺牲吞吐量为代价,按线程到达顺序服务。 |
| LinkedBlockingQueue | 基于链表数据结构,可指定最大大小,默认基本无界。 |
| P
超级会员免费看
订阅专栏 解锁全文
170万+

被折叠的 条评论
为什么被折叠?



