这篇文章主要介绍了Java并发编程示例(九):本地线程变量的使用,有时,我们更希望能在线程内单独使用,而不和其他使用同一对象启动的线程共享,Java并发接口提供了一种很清晰的机制来满足此需求,该机制称为本地线程变量,需要的朋友可以参考下
共享数据是并发程序最关键的特性之一。对于无论是继承Thread类的对象,还是实现Runnable接口的对象,这都是一个非常周重要的方面。
如果创建了一个实现Runnable接口的类的对象,并使用该对象启动了一系列的线程,则所有这些线程共享相同的属性。换句话说,如果一个线程修改了一个属性,则其余所有线程都会受此改变的影响。
有时,我们更希望能在线程内单独使用,而不和其他使用同一对象启动的线程共享。Java并发接口提供了一种很清晰的机制来满足此需求,该机制称为本地线程变量。该机制的性能也非常可观。
知其然
按照下面所示步骤,完成示例程序。
1.首先,实现一个有上述问题的程序。创建一个名为UnsafeTask的类,并且实现Runnable接口。在类中声明一个java.util.Date类型的私有属性。代码如下:
public class UnsafeTask implements Runnable {
private Date startDate;
2.实现UnsafeTask的run()方法,该方法实例化startDate属性,并将其值输出到控制台上。休眠随机一段时间,然后再次将startDate属性的值输出到控制台上。代码如下:
@Override
public void run() {
startDate = new Date();
System.out.printf("Starting Thread: %s : %sn",
Thread.currentThread().getId(), startDate); try {
TimeUnit.SECONDS.sleep((int) Math.rint(Math.random() * 10));
} catch (InterruptedException e) {
e.printstacktrace();
}
System.out.printf("Thread Finished: %s : %sn",
Thread.currentThread().getId(), startDate);
}
上一篇:springboot整合spring-retry的实现示例下一篇:java数据库唯一id生成工具类 热门搜索:
java多线程并发
编程示例
并发编程
线程并发
并发线程
相关文章
Java并发编程示例(九):本地线程变量的使用
2021-09-19阅读(4035)评论(0)推荐()这篇文章主要介绍了Java并发编程示例(九):本地线程变量的使用,有时,我们更希望能在线程内单独使用,而不和其他使用同一对象启动的线程共享,Java并发接口提供...
实例讲解Java并发编程之变量
2021-11-21阅读(4497)评论(0)推荐()这篇文章主要介绍了实例讲解Java并发编程之变量,本文讲解了编写线程安全需要关心的共享变量和可变变量,需要的朋友可以参考下
Java并发编程之volatile变量介绍
2021-10-19阅读(6595)评论(0)推荐()这篇文章主要介绍了Java并发编程之volatile变量介绍,volatile提供了弱同步机制,用来确保将变量更新通知到其它线程,需要的朋友可以参考下
Java并发编程示例(三):线程中断
2021-10-10阅读(4691)评论(0)推荐()这篇文章主要介绍了Java并发编程示例(三):线程中断,在本节,我们所开发的示例程序将会创建一个线程,五秒钟后,利用中断机制强制中止这个线程,需要的朋友可以参考...
Java并发编程示例(十):线程组
2021-10-19阅读(8238)评论(0)推荐()这篇文章主要介绍了Java并发编程示例(十):线程组,Java提供了ThreadGroup类来控制一个线程组,一个线程组可以通过线程对象来创建,也可以由其他线程...
Java并发编程示例(四):可控的线程中断
2021-10-12阅读(4033)评论(0)推荐()这篇文章主要介绍了Java并发编程示例(四):可控的线程中断,在本节,我们将使用一个线程查找指定目录及其子目录下文件来演示通过使用InterruptedExce...
Java并发编程示例(一):线程的创建和执行
2021-10-12阅读(5939)评论(0)推荐()这篇文章主要介绍了Java并发编程示例(一):线程的创建和执行,本文是系列文章的第一篇,需要的朋友可以参考下
取消
提交评论