![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java并发编程
文章平均质量分 89
lengyulone
这个作者很懒,什么都没留下…
展开
-
Java 线程的六种状态及打印输出
1.Java 线程的六种状态 Java 线程的状态类型和说明在 Thread 类的 State 枚举类中定义了六种,如下: * @since 1.5 * @see #getState */ public enum State { /** * Thread state for a thread which has not yet started. */ NEW, /*...原创 2020-12-06 22:33:13 · 763 阅读 · 0 评论 -
Java并发编程实战笔记三(可见性)
1.1 内存可见性 意味着当一个线程更新了共享数据时对其他线程可见。 1.1.1 可见性 可见性是一种复杂的属性。在单线程环境中,如果向某个变量写入值,然后在没有其他写入操作的情况下读取这个变量,总能得到相同的值。但是,在多线程环境中,读操作和写操作在不同的线程中执行,情况却并非如此。 代码示例: public static void main(Strin...原创 2019-05-25 16:36:03 · 184 阅读 · 0 评论 -
Java并发编程实战笔记一(线程带来的风险)
1.1 线程带来的风险 虽然Java提供了相应的语言和类库,以及一种明确的跨平台模型的并发应用程序,但同时也提高了对开发人员的技术要求,因为程序中线程无处不在,所以,必须了解线程方面的内容。 1.1.1 安全性问题 线程安全性可能是非常复杂的,在没有同步的情况下,多个线程中的操作顺序是不可预测的,甚至每次的结果存在不确定性。 下面这段示例代码Counter类中将产...原创 2019-05-16 20:55:43 · 110 阅读 · 0 评论 -
Java并发编程实战笔记二(线程安全性)
2.1 线程安全性 当多个线程访问某个类时,(不管运行时采用何种调度方式或者线程如何交替执行,主调代码中不需要任何额外的同步或协同)这个类始终都能表现出正确的行为,那么就称这个类是线程安全的。 线程安全性的根源在于多线程对共享变量的并发访问出现的: “共享”意味着变量可以由多个线程同时访问,而“可变”则意味着变量的值在生命周期内可以发生变化 一个对象是否需要是线程安全的,取...原创 2019-05-16 21:48:52 · 133 阅读 · 0 评论 -
Java并发编程实战笔记二(加锁机制)
2.2 加锁机制 当多个线程对于共享变量进行并发访问时我们需要通过加锁来保证它的线程安全性。 2.2.1 内置锁 Java提供了一种内置的锁机制来支持原子性:同步代码块(Synchronized Block)。同步代码块包括两部分:一个作为锁的对象引用,一个作为由这个锁保护的代码块。以关键字synchronized来修饰的方法就是一种横跨整个方法体的同步代码块,...原创 2019-05-18 17:05:11 · 427 阅读 · 0 评论 -
Java不可变类的设计
1.1 不可变类 不可变类是指其实例创建后状态不能被修改的类。它们的实例信息是由调用构造函数时就提供,不会提供对外的设值方法,保证它们的状态不会被改变。 1.1.1不可变类的好处 在Java平台类库中包含许多不可变的类,如String、基本类型的包装类以及Collections工具类中Unmodifiable对应各种集合的实现。不可变类比可变类更加易于设计、实现和使用...原创 2019-05-23 20:54:38 · 765 阅读 · 0 评论