社区
Java SE
帖子详情
多个Timer任务 怎么同事访问同一个static 类中的属性
tang3dashu
2008-11-18 11:57:01
RT
就是 我多个Timer任务 左右操作都是在一个staitc 类中 ,比如所有的计数 都是在另一个基础上去累计.
...全文
162
6
打赏
收藏
多个Timer任务 怎么同事访问同一个static 类中的属性
RT 就是 我多个Timer任务 左右操作都是在一个staitc 类中 ,比如所有的计数 都是在另一个基础上去累计.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tang3dashu
2008-11-26
打赏
举报
回复
呵呵 不能这么做啊。
我这里数据的并发量很大 有可能一秒种就有好几笔数据需要添加(本身这个功能就是用线程池做的).所有选择同步不是最有效的办法
showde123
2008-11-21
打赏
举报
回复
김래원
chen_chirs
2008-11-21
打赏
举报
回复
Ding...
synchronized(lock)
注意同步
[Quote=引用 2 楼 Iangao 的回复:]
上面第2个方法不准确,补充一个:
方法3:
假设resource在Owner类中被声明为static,而resource又无法象方法1那样修改的话TimeTask访问resource的地方使用
synchronized(resource){ ... } 应该就行了.(前提是resource不能是基本型),如果resource是基本型,就需要再声明一个非基本型的static对象如: static Object lock=new Object(); 再synchronized(lock){ ...对resource操作 }
[/Quote]
Iangao
2008-11-19
打赏
举报
回复
方法1:
假设被同步的对象名为resource, 那么把对象的obj的所有需同步的方法(比如resource.synAccess())前加上synchronized
接下来把resource声明成static对象,所有的TimerTask在访问resource时调用resource.synAccess()方法时就是同步的.
方法2:
假设resource在Owner类中被声明为static方法,而resource又无法象方法1那样修改的话,就把所有方问resource的方法在Owner中声明为static的, 比如Owner.synAccessResource()方法. 所有TimerTask在访问resource时调用Owner.synAccessResource()方法时就是同步的.
macleane
2008-11-19
打赏
举报
回复
注意同步,如果是要操作的是基本类型,加volatile关键字,如果是对象,尽量选用线程安全的,不行就把操作放在带有synchronized关键字的方法中
Iangao
2008-11-19
打赏
举报
回复
上面第2个方法不准确,补充一个:
方法3:
假设resource在Owner类中被声明为static,而resource又无法象方法1那样修改的话TimeTask访问resource的地方使用
synchronized(resource){ ... } 应该就行了.(前提是resource不能是基本型),如果resource是基本型,就需要再声明一个非基本型的static对象如: static Object lock=new Object(); 再synchronized(lock){ ...对resource操作 }
Android多线程、多进程间的通信
1、 操作系统的
任务
调度 在window和Linux操作系统中,
任务
调度采用时间片轮转机制,因为CPU执行效率非常高,内存执行效率比较低,为了提高CPU利用率,采用时间片轮转,就是一个
任务
执行一段时间之后强制暂停去执行下一个
任务
,每个
任务
轮流执行,被暂停的
任务
处于就绪状态,等待下一个属于它的时间片到来,这样每个
任务
都得到执行,而并发的意思就是
多个
任务
同时执行。 并行:是指
多个
处理...
java面试题
Java面试题 一 Java基础阶段 1.1 面向对象 面向对象的特征有哪些方面? 面向对象的特征主要有以下几个方面: 1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地 注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一 部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2)继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了 一种明确表述共性的方法。对象的一个新类可以从现有的
类中
派生,这个过程称 为类继承。新类继承了原始类的特
第四章 ASP.NET中的线程与异步
4.1 线程基础 在Window3.1的时代,开始采用称为协同多
任务
的机制,实际上,Windows运行的
多个
程序并没有真的同时运行,每个程序都要在适当的时候释放CPU的控制权,以便其他的程序得到到执行的机会,这种机制称为协同。从Window NT开始采用抢先式多
任务
系统,每一个运行的程序都分配在一个独立的进程中,一个进程实际上是一个数据结构,描述运行这个程序所需要资源的信息。线程是
C#多线程操作界面控件的解决方案
转载:https://www.cnblogs.com/runner/archive/2011/12/30/2307576.html C#中利用委托实现多线程跨线程操作 在使用VS2005的时候,如果你从非创建这个控件的线程中
访问
这个控件或者操作这个控件的话就会抛出这个异常。这是微软为了保证线程安全以及提高代码的效率所做的改进,但是也给大家带来很多不便。 其实解决这个问题有两种方法:一,是通过设...
高并发与多线程基础
多线程1. java中有几种方法可以实现一个线程? 答:在Java中实现一个线程有两种方法,第一是实现Runnable接口实现它的run()方法,第二种是继承Thread类,覆盖它的run()方法。这两种方法的区别是,如果你的类已经继承了其它的类,那么你只能选择实现Runnable接口了,因为Java只允许单继承的。2. 如何停止一个正在运行的线程? 答:...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章