线程锁#!/usr/bin/pythonimportthreadingimporttimeclassMyThread(threading.Thread):def__init__(self,threadname):threading.Thread.__init__(self,name=threadname)设定线程名称defrun(self):globalxlock.acquire()加锁foriinrange(3):x=x+1time.sleep(2)printxlock.release..
分类:
编程语言 时间:
2014-11-06 15:03:13
阅读次数:
151
Wake Lock是一种锁的机制, 只要有人拿着这个锁,系统就无法进入休眠,可以被用户态程序和内核获得. 这个锁可以是有超时的或者是没有超时的,超时的锁会在时间过去以后自动解锁.如果没有锁了或者超时了, 内核就会启动休眠的那套机制来进入休眠.PowerManager.WakeLock有加锁和解锁两种...
分类:
移动开发 时间:
2014-11-03 22:11:18
阅读次数:
277
介绍通常在一个多线程环境下,我们需要共享某些数据,但为了避免竞争条件引致数据出现不一致的情况,某些代码段需要变成原子操作去执行。这时,我们便需要利用各种同步机制如互斥(Mutex)去为这些代码段加锁,让某一线程可以独占共享数据,避免竞争条件,确保数据一致性。但可惜的是,这属于阻塞性同步,所有其他线程...
分类:
编程语言 时间:
2014-10-31 18:56:36
阅读次数:
225
由于pthread实现并行计算的方式是基于共享内存的,因此在多线程中共享变量的使用存在诸多同步性问题。在多个线程中对同一个变量进行读的时候可能没问题,但是在修改的时候,就有可能造成变量内容的不一致。为了解决这个问题,就需要对共享变量进行互斥的访问。
为了实现这一功能,在pthread中提供了线程锁,通过加锁和解锁就可以轻松避免上述问题,具体实例如下:
#include
#includ...
分类:
其他好文 时间:
2014-10-29 21:39:49
阅读次数:
213
Android中通过各种Lock锁对电源进行控制,需要注意的是加锁和解锁必须成对出现。
//启用屏幕常亮功能
PowerManager pm =(PowerManager) getSystemService(POWER_SERVICE);
wakeLock= pm.newWakeLock(PowerManager.FULL_WAKE_LOCK| PowerManager.ACQUIRE_CAUS...
分类:
移动开发 时间:
2014-10-28 21:51:00
阅读次数:
170
防止用户操作数据库的并发问题,可以使用锁对象技术。se11的最后一个功能是建立锁对象,例如对创建的数据库表加锁,命名可以是"E"+表名。名字起好后点创建,输入锁对象短文本(描述),在tables选项中选择要加锁的表名,之后在下面的lock parameter中一般选择"E"(专用,累积),设置好后,...
分类:
其他好文 时间:
2014-10-22 17:15:56
阅读次数:
235
我们在写高效服务时,许多需要缓存,一般缓存组件都需要加锁,我最近想了一个方法,感觉还不错,分享一下。直接上代码: public abstract class SimpleObjPool { int _locker = 0; int _cnt = 0; ...
分类:
其他好文 时间:
2014-10-21 17:12:06
阅读次数:
171
1、对象传递
在JAVA的参数传递中,有两种类型,第一种是基本类型传递,例如int,float,double等,这种是值传递,另外一种是对象传递,比如String或者自定义的类,这种是引用传递。
也就是说,基本类型传递的是一个副本,而对象传递的是对象本身。
2、锁
JAVA中,对象锁的概念,就是对对象进行加锁,每个对象都会有一个内存锁,如果加上锁以后,就只能让一个线程进行操作,在操...
分类:
编程语言 时间:
2014-10-20 23:30:04
阅读次数:
271
一. 线程安全
线程安全问题是指程序中公用的东西被多个线程访问,比如:类的静态变量
二. 同步锁
有什么办法可以解决线程安全问题呢?那就是在程序中加锁
Java有两种加锁的方法:
1. 在代码块中加锁 synchronized (this) { ... }
2. 在方法上加锁 public synchronized void xxx(){ ... }...
分类:
编程语言 时间:
2014-10-19 23:16:38
阅读次数:
232
参考http://blog.csdn.net/zbszhangbosen/article/details/7434637#reply
这里补充一些:
(1)InnoDB默认加锁方式是next-key locking
(2)在聚集索引中,如果主键有唯一性约束(unique,auto increment),next-key locking 会自动降级为record locking。
(3)由于...
分类:
数据库 时间:
2014-10-16 11:04:42
阅读次数:
305