`
chxiaowu
  • 浏览: 242650 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JAVA多线程设计模式二 Immutable Pattern

 
阅读更多

String  与  StringBuffer 可以互相转换。

一个是线程安全的,一个是非线程安全的。

 

public final class Person {
    private final String name;
    private final String address;
    public Person(String name, String address) {
        this.name = name;
        this.address = address;
    }
    public String getName() {
        return name;
    }
    public String getAddress() {
        return address;
    }
    public String toString() {
        return "[ Person: name = " + name + ", address = " + address + " ]";
    }
}

 

 

 

public class PrintPersonThread extends Thread {
    private Person person;
    public PrintPersonThread(Person person) {
        this.person = person;
    }
    public void run() {
        while (true) {
            System.out.println(Thread.currentThread().getName() + " prints " + person);
        }
    }
}

 

 

 

public class Main {
    public static void main(String[] args) {
        Person alice = new Person("Alice", "Alaska");
        new PrintPersonThread(alice).start();
        new PrintPersonThread(alice).start();
        new PrintPersonThread(alice).start();
    }
}

 

类中字段不会被修改。所以是安全的。

分享到:
评论

相关推荐

    java多线程设计模式详解(PDF及源码)

    书中包含Java线程的介绍导读、12个重要的线程设计模式和全书总结以及丰富的附录内容。第一章相关线程设计模式的介绍,都举一反三使读者学习更有效。最后附上练习问题,让读者可以温故而知新,能快速地吸收书中的...

    java多线程设计模式 (PDF中文版, 附源码)

    目录: 漫谈UML Introduction 1 Java语言的线程 Introduction 2 多线程...总结 多线程程序设计的模式语言 附录A 练习问题的解答 附录B Java的内存模型 附录C Java线程的优先级 附录D 线程相关的主要API 附录E 参考文献

    java多线程设计

    本知识点将深入探讨Java多线程设计以及如何利用“不可变对象”(immutable objects)来避免多线程环境中的非安全问题。 一、Java多线程基础 1. 线程的创建:Java提供了两种创建线程的方式——继承Thread类和实现...

    java8源码-GraphicMultiThreadDesignPattern:图解Java多线程设计模式

    记录自己学习《图解Java多线程设计模式》这本书的全部过程 本书上传的所有代码都是可以运行的,在此附上本书源码地址: 在此向本书作者和译者表示感谢 运行环境 Eclipse版本:Oxygen.2 Release (4.7.2) JDK版本:jdk...

    Java多线程详解

    Java多线程模式详解 目录: 一、漫谈UML Java语言的线程 多线程的评量标准 二、 1、Single Threaded Execution ———— 能通过这座桥的,只有一个人 2、Immutable ———— 想破坏它也没办法 3、Guarded ...

    Java多线程安全集合

    Java提供了一系列的线程安全集合类,它们是专门为多线程环境设计的。 首先,我们要了解什么是线程安全。线程安全是指一个类或者方法在多线程环境中被调用时,能够正确地处理并发访问,不会因为线程间的交互而产生...

    汪文君高并发编程实战视频资源下载.txt

    │ 高并发编程第二阶段41讲、多线程设计模式内容回顾与总结.mp4 │ 高并发编程第二阶段42讲、ClassLoader课程大纲介绍.mp4 │ 高并发编程第二阶段43讲、类加载的过程以及类主动使用的六种情况详细介绍.mp4 │ 高...

    汪文君高并发编程实战视频资源全集

    │ 高并发编程第二阶段41讲、多线程设计模式内容回顾与总结.mp4 │ 高并发编程第二阶段42讲、ClassLoader课程大纲介绍.mp4 │ 高并发编程第二阶段43讲、类加载的过程以及类主动使用的六种情况详细介绍.mp4 │ 高...

    JavaConcurrencyPattern:Java并发模式

    这些文章已扩充为一本书:《Java多线程编程实战指南(设计模式篇)》,由电子工业出版社出版,当当、亚马逊、京东、互动出版网、淘宝等各大书店有售。 【样章】 Active Object模式: Immutable Object模式: Two-...

    java线程编程资料

    Java线程编程是Java开发中的重要组成部分,它允许程序同时执行多个任务,提高了应用程序的响应速度和效率。本文将深入探讨Java线程的核心概念、创建方法、同步机制以及相关实践。 1. **线程的基本概念** - **线程...

    javabiginteger源码-MultiThreadMode:多线程模式

    优点:不需使用synchronized保护类的属性,适用于类被多个线程共享,且有可能被频繁访问。 标准类中mutable类:StringBuffer 标准类中Immutable类:String、BigInteger、BigDecimal、Pattern、基本类型的包装类 java...

    java-leetcode题解之Range Sum Query - Immutable.java

    java java_leetcode题解之Range Sum Query - Immutable.java

    Java Concurrency in Practice

    4. **并发设计模式**:介绍了如双重检查锁定、发布与初始化的安全、避免活跃性问题(死锁、活锁、饥饿)等常见的并发设计模式,指导开发者写出高效且可靠的并发代码。 5. **并发集合**:Java并发包中的并发集合(如...

    82丨开源实战三(中):剖析GoogleGuava中用到的几种设计模式1

    Google Guava 是一个广泛使用的Java库,它包含了各种实用工具类和设计模式的实现,极大地提高了开发效率。在本篇中,我们将深入探讨Guava中使用的三种设计模式:Builder模式、Wrapper模式以及Immutable模式。 ### 1...

    JAVA不可变类(immutable)机制与String的不可变性(推荐)

    Java中的不可变类(immutable)是一种特殊的类,其对象一旦创建后,其状态就不能再发生变化。这类类在Java中有着重要的地位,特别是String类,它是Java中最常用的不可变类之一。不可变类的设计旨在提高安全性、效率...

    高效安全的Immutable List好处.docx

    这种设计模式在多线程环境和安全性需求较高的场景下非常有用,因为它天然具备线程安全性和防止意外修改的特性。 线程安全:由于 Immutable List 不可变,所以在多线程环境中,多个线程可以共享同一个实例而无需担心...

    Java并发编程学习笔记

    Java并发编程是指在Java语言中编写多线程和多任务执行的程序,以便更高效地利用计算机的多核处理器资源。并发编程是Java高级编程技能中的重要组成部分,尤其是在需要处理大量数据、提供快速响应、实现高吞吐量和高可...

    前端开源库-immutable-core

    4. **并行计算**:不可变数据结构天然支持并行计算,因为它们可以安全地在多个线程中使用。 5. **可预测性**:由于数据不会改变,函数的结果只依赖于其输入,这使得代码更容易测试和理解。 **三、Immutable-core的...

    ikm_java_8.pdf

    在Java编程中,**多线程安全**是确保程序在多线程环境中能够正确运行的重要方面。下面是一些可以增加Java SE程序线程安全性的技术: - **b. 写类使它们不可变(Immutable)**:不可变对象是指一旦创建后就不能改变...

    Docker and Immutable Infrastructure

    1.Overview of Docker the company and growth 2.Overview of Docker the latest stuff (DCUS announcements) & CaaS;...4.Docker and Immutable infrastructure/Microservices working together.

Global site tag (gtag.js) - Google Analytics