`
chxiaowu
  • 浏览: 242640 次
  • 性别: 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();
    }
}

 

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

分享到:
评论

相关推荐

    JavaConcurrencyPattern:Java并发模式

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

    java英文对照表

    调试(Debug)是查找和修复程序错误的过程,设计模式(Design Pattern)是解决常见问题的最佳实践。双精度浮点型(Double)和单精度浮点型(Float)用于表示浮点数值。垃圾回收(Garbage Collection)是自动管理内存...

    effective_java_new:Effective_java_new

    以上只是《Effective Java》中的一部分重要概念,实际书籍中还涉及了很多其他主题,包括集合、多线程、序列化、类设计等方面的最佳实践。通过对这些原则的深入理解和应用,Java开发者可以提升代码质量,编写出更专业...

    Rust常见面试题.pdf

    - **并行性**:Rust内置了高级的并发模型,支持安全的多线程编程,有助于编写可扩展的应用程序。 - **跨平台**:Rust支持多种操作系统,如Windows、macOS和Linux等。 #### 2. Rust与C++相比有哪些优势和不同之处? ...

Global site tag (gtag.js) - Google Analytics