Ron_Tag标签_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
当前位置:程序员俱乐部 >>Tag标签 >> Ron >>列表
一、科普定义这篇博文的两个主角“synchronized”和“读写锁”1)synchronized这个同步关键字相信大家都用得比较多,在上一篇“多个线程之间共享数据的方式”中也详细列举他的应用,在这就不多说只做几点归纳:Java提供这个关键字,为防止资源冲突提供的内置支持。当任务执行到被synchronized保护的代码片段的时候,它检查锁是否可用,然后获取锁,执行代码,释放锁。常用这个关键字可以修饰成员方法和代码块2)读写锁我们对数据的操作无非两种:“读”和“写”,试想一个这样的情景... 查看全文
看有人回复,说明也遇到这样的问题。首先说明下面贴的是我自己开发过程中遇到的log文件内容。1L问到解决方案,由于是自己做,不具有普遍解决问题的能力。我这个问题,通过跟踪C++类库(Java与C++联调),发现是库里头报错了,导致返回一个error给Java。然后Java里就报下面这一堆东西~~~唯一可以借鉴给你的可能是:如果确定不是Java的代码问题,那就要Java与C++联调,到C++里跟踪定位出问题出错的地方,这才可以快速定位和解决。下面的log俺自己收藏用的... 查看全文
· (转载)java synchronized详解发布时间:2013-05-19
javasynchronized详解记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。二、然而,当一个线程访问object的一个synchronized(this)同步代码块时... 查看全文
· 在Sinatra中灵活地配置Environments发布时间:2013-01-25
在Sinatra中灵活的配置Environments在Sinatra中有三个预先定义的环境属性值,包括:development,test,production.这个当前所处的环境的值还可以通过RACK_ENV这个环境变量来设置。如果什么都不设置,默认就是develpment。之所以要区分不同环境的值,主要是我们在不同的环境下需要采用不同的配置。例如:开发环境采用postgres,测试环境运行自动化测试用sqlite,产品环境部署需要用到CloudFoundry上的PostgresService... 查看全文
· Insufficiently Synchronized Java Code发布时间:2012-07-09
I'mreading"JavaConcurrencyinPractice".Section3.1.1talksaboutitmaycausesurprisingresultswhenyoudonotprovideenoughsynchronizationtoyoursharedvariables.Takealookattheexampleinthebook:publicclassNoVisibility{privatestaticbooleanready... 查看全文
一、开发语言的选择iphone有objectivec++android用java的多但是大家可以看看程序语言的排名,lua这个巴西人发明的本来专门用于嵌入式开发的语言,现在大行其道。已经排名到了前10位,呵呵,ruby在11位左右。二、sdk库的选择实际上为什么lua为什么如此之牛,关键在于一个sdk库的出现,就好像rails的出现激活了ruby一样。这个sdk库的出现激活了lua。它就是与我们常在酒吧中点的啤酒-可罗拉的名字一样:corona。corona还包含一个pc机上使用的手机模拟环境... 查看全文
· synchronizer--JCIP5.5读书笔记发布时间:2012-04-05
[本文是我对JavaConcurrencyInPractice5.5的归纳和总结.转载请注明作者和出处,如有谬误,欢迎在评论中指正.]Synchronizerssynchronizer是指那些根据状态协调线程的对象.BlockingQueue就是一个典型的synchronizer:当队列为空时,取数据的消费者线程将被阻塞,直到队列不为空;当队列满时,存入数据的生产者线程将被阻塞,直到队列不满.除了BlockingQueue之外,常用的synchronizer还有latch,FutureTask... 查看全文
想验证一下多线程下数据共享出错的问题,在下面的程序中定义了一个简单的堆栈,并且两个线程向堆栈中压入数据和弹出数据。为了让它出错,在MyStack类中,当数据存入到数组之后,指针修改之前调用了Thread.sleep方法使之休眠。但后来将这一段代码加上同步锁之后,似乎没起到同步的作用啊代码如下:packagenit.thread;classMyStack{privateint[]data=newint[10];privateintp=0;publicvoidpush(intvalue)... 查看全文
· crontab执行不了php的解决方法发布时间:2012-03-13
用crontab跑php程序时,如何去调试,各人有各人的方法。我也有套方法,看一下,我是如何解决crontab执行不了php程序这个问题的。一,php文件有没有执行权限[root@linuxcron]#ls-al|grepdel-rwxr-xr-x1zwhftpgroup49410-2016:42del_redis.php如果没有X,说明没有执行权限,当然也执行不了。如果你不知道你登录的用户所在的组是不是有权限,直接给所有组都加上权限就行了。方法如下:查看复制打印... 查看全文
在并发环境下,解决共享资源冲突问题时,可以考虑使用锁机制。1.对象的锁所有对象都自动含有单一的锁。JVM负责跟踪对象被加锁的次数。如果一个对象被解锁,其计数变为0。在任务(线程)第一次给对象加锁的时候,计数变为1。每当这个相同的任务(线程)在此对象上获得锁时,计数会递增。只有首先获得锁的任务(线程)才能继续获取该对象上的多个锁。每当任务离开一个synchronized方法,计数递减,当计数为0的时候,锁被完全释放,此时别的任务就可以使用此资源。2.synchronized同步块当使用同步块时... 查看全文
· java多线程同步synchronized发布时间:2012-02-27
记录代码有兴趣可以运行试试,然后想想。最终结论只有一条:“synchronized”关键字同步的始终是该synchronized修饰的方法的持有对象(同步方法)该synchronized修饰的对象(同步块)目前我所知的synchronized关键字用法,分3种情况:普通方法上使用eg:publicsynchronizedvoidmethod(...){...}静态方法上使用eg:publicsynchronizedstaticvoidmethod(...){...}代码块上使用eg:...... 查看全文
· ReentrantLock和synchronized的性能发布时间:2012-02-15
转载http://my.oschina.net/digerl/blog/33282为了比较一下ReentrantLock和synchronized的性能,做了一下性能测试:得出结论:(1)使用Lock的性能比使用synchronized关键字要提高4~5倍;(2)使用信号量实现同步的速度大约比synchronized要慢10~20%;(3)使用atomic包的AtomicInter速度是比Lock要快1一个数量级。ReentrantLock类java.util.concurrent... 查看全文
· java同步机制 synchronized发布时间:2012-02-06
JAVA中synchronized关键字能够作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。假如再细的分类,synchronized可作用于instance变量、objectreference(对象引用)、static函数和classliterals(类名称字面常量)身上。在进一步阐述之前,我们需要明确几点:A.无论synchronized关键字加在方法上还是对象上,他取得的锁都是对象,而不是把一段代码或函数当作锁――而且同步方法很可能还会被其他线程的对象访问... 查看全文
有时候为了监控某个程序,需要定时任务。需要程序自动运行。1、ignore_user_abort()ignore_user_abort()函数搭配set_time_limit(0)和sleep($interval)即可实现程序自动运行更新。例子:1234567891011121314151617//即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.ignore_user_abort();//执行时间为无限制,php默认的执行时间是30秒,通过set_time_limit(0... 查看全文
· java synchronized详解 发布时间:2012-01-19
一直对这些不是很懂。找了一下,看一下,供我以后再看:第一篇:Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。二、然而,当一个线程访问object的一个synchronized(this)同步代码块时... 查看全文
· Inside AbstractQueuedSynchronizer (4)发布时间:2012-01-10
3.6ConditionObjectAbstractQueuedSynchronizer的内部类ConditionObject实现了Condition接口。Condition接口提供了跟Java语言内置的monitor机制类似的接口:await()/signal()/signalAll(),以及一些支持超时和回退的await版本。可以将任意个数的ConcitionObject关联到对应的synchronizer,例如通过调用ReentrantLock.newCondition(... 查看全文
· Inside AbstractQueuedSynchronizer (1)发布时间:2012-01-07
1Overview如果查看ReentrantLock,CountDownLatch,Semaphore,FutureTask,ThreadPoolExecutor的源码,都会发现有个名叫Sync的静态内部类,继承自AbstractQueuedSynchronizer。实际上AbstractQueuedSynchronizer是java.util.concurrent的核心组件之一,它为并发包中的其他synchronizers提供了一组公共的基础设施... 查看全文
Hmm,anotherblogentryonthePlayframework.Youmustbesooosurprised!Playallowsyoutosuspendrequestswhiledoingheavycomputation–thisfreesupyourapplicationtocontinueprocessingnewrequests,regardlessofhowlongthecomputationtakes.However... 查看全文
接着上一讲《多线程——同步(synchronized)上》上一讲中说到的第二个例子,通过synchronized块,指定获取对象锁来达到同步的目的。那有没有其它的方法,可以通过synchronized方法来实现呢?根据同步的原理:如果能获取一个共享对象锁或类锁,及可实现同步。那么我们是不是可以通过共享一个类锁来实现呢?是的,我们可以使用静态同步方法,根据静态方法的特性,它只允许类对象本身才可以调用,不能通过实例化一个类对象来调用。那么如果获得了这个静态方法的锁,也就是获得这个类锁... 查看全文
· 多线程——同步(synchronized)上发布时间:2011-12-13
多线程——同步(synchronized)上多线程编程中,最关键、最关心的问题应该就是同步问题,这是一个难点,也是核心。从jdk最早的版本的synchronized、volatile,到jdk1.5中提供的java.util.concurrent.locks包中的Lock接口(实现有ReadLock,WriteLock,ReentrantLock),多线程的实现也是一步步走向成熟化。同步,它是通过什么机制来控制的呢?第一反应就是锁,这个在学习操作系统与数据库的时候,应该都已经接触到了... 查看全文