java多线程
【摘要】 Java可以用Thread类和synchronized关键字来编写多线程,但很难使用。所以java5在java.util.concurrent包里添加了并发工具。首先是atomic包里面提供了一些类,能够以原子操作来操作这些类的变量。有了并发工具,尽量不再用Thread线程执行Runnable任务,可以用Executor或子接口ExecutorService的一个实现来执行。当然,很少需要自...
Java可以用Thread类
和synchronized关键字
来编写多线程,但很难使用。所以java5在java.util.concurrent
包里添加了并发工具。
首先是atomic包里面提供了一些类,能够以原子操作来操作这些类的变量。
有了并发工具,尽量不再用Thread线程执行Runnable任务,可以用Executor
或子接口ExecutorService的一个实现
来执行。
当然,很少需要自己编写实现,一般使用Executors的静态方法
即可,比如
public static ExecutorService newFixedThreadPool(int numOfThreads)
public static ScheduledExecutorService newScheduledThreadPool (int corePoolSize)
ExecutorService是Executor的一个扩展,它添加了终止方法、用于执行Callable的方法(类似于Runnable,但可以返回一个值,便于通过Future接口来完成删除的任务)
Runnable任务
可以写成Lambda表达式,如果不需要向任务传递参数,任务也短,将其构造成匿名类是合适的;否则新建类来实现Runnable接口比较合适。
待续
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)