`
fordfelix
  • 浏览: 4120 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

线程单列Thread

阅读更多
public class ThreadSingleton
{
private static ThreadLocal tl = new ThreadLocal();

ThreadSingleton(){}

public static ThreadSingleton getInstance()
{
ThreadSingleton ts = ti.get();
if(ts == null)
{
ts = new ThreadSingleton();
ti.set(ts);
}

return ts;
}
}

----------------------------------------------


public static void main(String[] args) {

ThreadSingleton ts1 = ThreadSingleton.getInstance();
ThreadSingleton ts2 = ThreadSingleton.getInstance();

System.out.println(ts1);
System.out.println(ts2);

Thread th = new Thread()
{
@Override
public void run()
{
ThreadSingleton ts3 = ThreadSingleton.getInstance();
ThreadSingleton ts4 = ThreadSingleton.getInstance();

System.out.println(ts3);
System.out.println(ts4);

}};

th.start();
}

--------------------------

Console输出


com.timer.ThreadSingleton@18a992f
com.timer.ThreadSingleton@18a992f
com.timer.ThreadSingleton@dc8569
com.timer.ThreadSingleton@dc8569
分享到:
评论

相关推荐

    Python文件操作及多路归并排序

    可以按单列或多列组合排序,每列的顺序可以设置为反序或者正序; 列的数据类型可以是字符串、整数、浮点数,比较排序时按指定的数据类型比较大小; 排序算法可以单线程执行(适用于小文件),也可以多线程执行(适用...

    2020-java常见面试题

    3. 创建线程的方式包括实现Runnable接口、继承Thread类以及使用ExecutorService。 4. Runnable和Callable的区别:Runnable没有返回值,Callable可以有返回值并且能抛出异常。 5. 线程的状态包括新建、就绪、运行、...

    Thread.zip_ListView/ListBox_Visual_Basic_

    标题"Thread.zip_ListView/ListBox_Visual_Basic_"和描述"Thread access to listbox"暗示了我们要讨论的是如何在多线程环境中安全地操作`ListBox`。 首先,让我们了解`ListView`和`ListBox`的基本概念。`ListView`...

    面试题(2).docx

    - sleep()是Thread类的方法,使当前线程暂停指定时间,不会释放锁。 - wait()是Object类的方法,用于线程间通信,使当前线程等待,释放持有的锁,需要在同步块或方法中调用。 以上内容详细阐述了Java基础部分的...

    JavaSE笔记11111

    多线程是Java实现并发执行的手段,通过Thread类或者实现Runnable接口可以创建线程。线程池是管理线程的工具,如ExecutorService,它可以有效地管理和控制线程的生命周期,提高系统资源的利用率。 反射是Java的动态...

    2022最新Java面试题常见面试题与答案汇总0001.pdf

    4. 创建线程的方式有实现`Runnable`接口、继承`Thread`类、使用`ExecutorService`。 5. `Runnable`无需返回值,`Callable`可返回结果。 6. 线程状态包括新建、就绪、运行、阻塞和死亡。 7. `sleep()`让线程休眠,`...

    JAVA程序员面试32问

    继承Thread类直接创建线程对象,而实现Runnable接口更利于资源的共享和多线程协作。 10. **异常处理的try-catch-finally** - 异常处理通过try-catch-finally语句块来捕获和处理异常。try块中的代码可能会抛出异常...

    2018年最全Java面试通关秘籍第四套

    - **线程创建**:通过实现Runnable接口、继承Thread类或使用ExecutorService创建线程。 - **并发控制**:CountDownLatch、CyclicBarrier、Semaphore和Exchanger用于同步和协调线程。 - **线程池**:...

    2017年阿里Java基础面试题文档 Java知识分享

    - **Thread类**:通过继承Thread类并重写run()方法来创建线程。 - **Runnable接口**:实现Runnable接口并重写run()方法,然后将该实现类的对象作为参数传递给Thread类的构造器来创建线程。 **区别**: - 继承Thread...

    spotify java面试题库.docx

    49. Thread的wait()使线程等待,sleep()让线程休眠一段时间。wait()需要在同步块中使用,sleep()可以在任何地方使用。 50. sleep()不会释放锁,yield()让当前线程让出CPU执行权,但不保证立即执行其他线程。 51. ...

    2019最新Java面试题,常见面试题及答案汇总 (2).pdf

    - 创建线程的方法有实现Runnable接口、继承Thread类和使用ExecutorService。 - `sleep()`使当前线程休眠,`wait()`让线程等待,两者都需要捕获InterruptedException。 - `synchronized`和`volatile`、`Lock`(如...

    史上最全java面试,103项重点知识,带目录

    继承Thread类、实现Runnable接口、实现Callable接口配合FutureTask。 29. **runnable与callable的区别**: Runnable没有返回值,不能抛出检查异常;Callable可以有返回值,可以抛出异常。 30. **线程状态**: ...

    Java 最常见的面试题(208道).docx

    38. **创建线程的方式**:实现Runnable接口、继承Thread类、使用ExecutorService的submit()或execute()方法。 39. **Runnable与Callable**:Runnable没有返回值,Callable有返回值,可以通过FutureTask包装后提交给...

    对参数 对象的理解方法

    Java提供了强大的多线程支持,可以通过实现`Runnable`接口或继承`Thread`类来创建线程。此外,Java 5引入了`Executor`框架,进一步简化了线程管理。 - **线程状态**:线程在其生命周期内会经历不同的状态,包括可...

    2021-2022计算机二级等级考试试题及答案No.14419.docx

    2. 线程的run()方法是线程执行的核心,用户可以通过继承Thread类或者实现Runnable接口来自定义线程行为。 3. 设计Access数据库表的原则是每个表应只包含一个主题的信息,不应包含重复信息,且信息不应该在表之间...

    Java 面试题(含答案)

    - `Collection`:集合框架的顶级接口,代表单列集合。 - `Collections`:工具类,提供了对集合操作的各种静态方法。 6. **final 关键字的用途:** - 类:声明为 `final` 的类不能被继承。 - 方法:`final` 方法...

    java程序员面试题及解答.pdf,这是一份不错的文件

    12. sleep() 和 wait():sleep() 是 Thread 类的方法,使当前线程暂停指定时间,不会释放锁;wait() 是 Object 类的方法,使线程等待,会释放锁,需在同步环境中使用。 13. Java 没有 goto 关键字。 14. 数组的 ...

    Java基础和Java进阶

    通过`Thread`类或实现`Runnable`接口,开发者可以创建并管理多个执行线程。同时,Java提供了`synchronized`关键字、`volatile`变量、`Lock`接口等机制来控制并发访问,保证线程安全。 五、IO流 Java的IO流系统用于...

    Java程序员面试的试题集

    14. **sleep()与wait()的区别**:sleep()是Thread类的方法,让当前线程暂停指定时间,不会释放锁;wait()是Object类的方法,使线程等待,释放对象锁,需要其他线程调用notify()或notifyAll()唤醒。 15. **Overload...

Global site tag (gtag.js) - Google Analytics