加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 语言级别的线程

发布时间:2020-12-15 08:34:43 所属栏目:Java 来源:网络整理
导读:我正在阅读关于线程的内容,并且在许多书中都说 Java支持语言级别的线程,并且通过java.util.concurrent包支持高级别的线程. 在语言层面支持线程意味着什么? 我认为Erlang是一种支持语言级别线程的语言…… 解决方法 在语言级别支持线程意味着该语言为多线程
我正在阅读关于线程的内容,并且在许多书中都说 Java支持语言级别的线程,并且通过java.util.concurrent包支持高级别的线程.

在语言层面支持线程意味着什么?

我认为Erlang是一种支持语言级别线程的语言……

解决方法

在语言级别支持线程意味着该语言为多线程提供了一流的支持,而不是仅通过类库提供二级支持.

在Java中,语言级别使用synchronized和volatile关键字支持线程.使用监视器和volatile字段是相对低级的线程构造 – 更高级别的构造,例如通用Locks,Barriers,ThreadPools,Concurrent集合可以在java.util.concurrent包中找到,还有低级原子操作.

Java中的线程不仅仅是该语言中的几个关键字. Java Memory Model要求多线程内存访问的结果,例如当一个线程的更改对其他线程可见时.这确保正确编写的线程程序按预期运行,而不管底层架构(指令重新排序,缓存一致性策略等).

原始的java类库提供了对java.lang.Thread的线程支持,代表一个线程,并且从JDk 1.2开始,java.lang.ThreadLocal表示线程局部变量.原始JDK还包括可执行对象的抽象概念 – java.lang.Runnable.并发工具使用Callable和Future扩展了这一点,这使得创建异步结果比仅使用低级结构进行编码要简单得多.

虽然你可以使用volatile,synchronized和Runnable(与JDK 1.5之前一样),但并发工具提供的类使得编写线程程序变得更容易,并且更有可能使它们正确.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读