Author Archives: coder4

Java Concurrency in Practice 读书笔记 第七章

7.1  任务的取消
任务应该是可取消的:在run的外界可以让其状态从运行变为终止。

需要取消任务的场景:

1、用户取消任务,如点击了“取消”

2、时间timeout限制的任务

3、程序外部事件需要处理。

4、出错

5、关闭、退出、清理

Java中没有原生提供“停止线程”的方法,但可以使用“bool标志位+volatile”的方式来实现,注意list还是需要被锁保护的。
@ThreadSafe
public class PrimeGenerator[......]

继续阅读

7.1. Task Cancellation


7.1. Task Cancellation
An activity is cancellable if external code can move it to completion before its normal completion. There are a number of reasons why you might want to cancel an activity: 
User-requested cancellation. The user clicked on t[......]

继续阅读

Java Concurrency in Practice 读书笔记 第六章

6.1  在线程中执行任务
在多线程开发中,要执行多线程任务,第一步是“找出任务边界”。

一个好的并发服务器是:大吞吐量,低响应时间。当系统过载的时候,只是性能降低而不会崩溃。

网络服务器为多线程提供了自然的任务边界:每一个客户端的请求。例如Web服务器、Mail服务器、文件服务器、EJB容器、数据库服务器都接受这种请求。各个客户端之间的请求应该是互补影响的。

单线程服务器
class SingleThreadWebServer {
public static v[......]

继续阅读

CentOS下配置ftp(vsftpd)

1、安装
yum install vsftpd
2、启动
/etc/init.d vsftpd start
3、配置
vim /etc/vsftpd/vsftpd.conf
更改为下列选项
#禁止匿名
anonymous_enable=NO
#可以写入
write_enable=YES
#Nginx多用户共享的需求
local_umask=002
#所有用户不能离开家目录
chroot_local_user=YES
#只允许userlist_file中列出的用户登录[......]

继续阅读