博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java线程:线程私有变量
阅读量:7231 次
发布时间:2019-06-29

本文共 925 字,大约阅读时间需要 3 分钟。

线程对象也是从一个(线程)类而构建的,线程类作为一个类也可以拥有自己的私有成员。这个成员为此线程对象私有,有时候使用线程私有变量,会巧妙避免一些并发安全的问题,提高程序的灵活性和编码的复杂度。
 
下面举例来说吧,统计一个线程类创建过多少个线程,并为每个线程进行编号。
 
package com.lavasoft.test; 


/** 
* 为线程添加编号,并确所创建过线程的数目 
* @author leizhimin 2010-1-4 14:15:31 
*/
 

public 
class ThreadVarTest { 

        
public 
static 
void main(String[] args) { 

                Thread t1 = 
new MyThread(); 

                Thread t2 = 
new MyThread(); 

                Thread t3 = 
new MyThread(); 

                Thread t4 = 
new MyThread(); 

                t1.start(); 

                t2.start(); 

                t3.start(); 

                t4.start(); 

        } 



class MyThread 
extends Thread { 

        
private 
static 
int sn = 0;    
//线程数 

        
private 
int x = 0;                    
//线程编号 


        MyThread() { 

                x = sn++; 

        } 


        @Override 

        
public 
void run() { 

                Thread t = Thread.currentThread(); 

                System.out.println(t.getName() + 
"\t" + x); 

        } 

}
 
运行结果:
Thread-0  0 

Thread-1  1 

Thread-2  2 

Thread-3  3 


Process finished with exit code 0
 
这个程序是很多公司面试题,这是一种求解方式,应该是最简单的求解方式。还有用ThreadLocal实现的版本,还有其他的,都没有这个代码简洁。
本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/258380,如需转载请自行联系原作者
你可能感兴趣的文章
react-hooks 实现简单的评论list
查看>>
【多图警告】学会JavaScript测试你就是同行中最亮的仔(妹)
查看>>
19-04-25
查看>>
一个JAVA程序员成长之路分享
查看>>
30K iOS程序员的简述:如何快速进阶成为高级开发人员
查看>>
Go 夜读 - 每周四晚上 Go 源码阅读技术分享
查看>>
tranform知多少
查看>>
Android电量优化
查看>>
[爬虫手记] 我是如何在3分钟内开发完一个爬虫的
查看>>
【译】Css Grid VS Flexbox: 实践比较
查看>>
iOS 开发知识索引
查看>>
Linux iptables命令
查看>>
webpack的使用
查看>>
干货 | 基于Go SDK操作京东云对象存储OSS的入门指南
查看>>
D3.js入门
查看>>
一次和前端的相互甩锅的问题记录
查看>>
纯OC实现iOS DLNA投屏功能了解一下
查看>>
RxJava -- fromArray 和 Just 以及 interval
查看>>
LC #75 JS
查看>>
js正则验证代码库
查看>>