上周五和周末,工作忙里偷闲,在看java cocurrent中也顺便再温故了一下Thread.interrupt和java 5之后的LockSupport的实现。
在介绍之前,先抛几个问题。
Thread.interrupt()方法和InterruptedException异常的关系?是由interrupt触发产生了InterruptedException异常?Th...
分类:
编程语言 时间:
2014-06-19 13:03:42
阅读次数:
733
在unix系统中对大部分系统调用非正常返回时,通常返回值为-1,并设置全局变量errno,如socket(), bind(), accept(), listen()。erron存放一个正整数来保存上次出错的错误值。
对线程而言,每个线程都有专用的errno变量,不必考虑同步问题。
慢系统调用
指可能永远阻塞而无法返回的系统调用,通常是一些读写的例子,如pipe,终端设备,网络连接,典...
分类:
系统相关 时间:
2014-06-19 10:35:23
阅读次数:
337
翻译了两篇,这篇就不翻译了,自己写吧。
对于线程来说除了安全性,我们还应该重视它的生存性(我觉得翻译成三个字说着比较顺)。 为了保证线程安全,我们往往需要用到同步,但是同步限制了线程的执行,线程必须为了获得共享资源而等待。等待的时间可长可短,这就体现了线程的活跃程度,如果线程只是安全的执行了,而执行的很慢,那并发也就显得不是很必要了。所以除了保证线程的安全以外我们还必须保证线程的活跃。
...
分类:
其他好文 时间:
2014-06-19 10:32:20
阅读次数:
170
1.在单线程中,我们每次只能做一件事情。
而在多线程中,其实最本质的也是一次只能做一件事情,只是CPU给定的时间片完成之后,切换到另一个线程,然后这个分配CPU的时间片完成之后,再次切换到另一个线程,如此反复,其间切换的速度很快,给人一种同时进行的错觉而已。
但在多线程中,往往会发生两个线程抢占资源的问题,所以我们需要防止这些资源访问的冲突。
C#提供线程同步机制来防止资源访问的冲突,其中主...
分类:
编程语言 时间:
2014-06-15 19:38:36
阅读次数:
293
网站连接 :http://www.gaoshou.me/uid/19125624
不用不知道,一用吓一跳。
每个月的手机话费不用愁了。
仅限苹果手机
1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作,
2、异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继...
分类:
Web程序 时间:
2014-06-15 19:08:16
阅读次数:
265
多线程间共享数据问题
一、Synchronized关键字
atomic一词与“原子”无关,它曾经被认为是物质的最小的单元,不能再被拆解成更小的部分。
当一个方法被声明成synchronized,要执行此方法的thread必须先取得一个token,我们将它称为锁。一旦该方法取得(或者说是获得)锁,它将运行此方法然后释放掉(或者返回)此锁。不管方法时怎样返回的(包...
分类:
编程语言 时间:
2014-06-15 17:36:35
阅读次数:
359
http://blog.csdn.net/kyokowl/article/details/6294341
POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临界区(C...
分类:
其他好文 时间:
2014-06-15 17:31:12
阅读次数:
167
五、自旋锁(spinlock)
自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。
由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于互斥锁。
信号量和读写信号量适合于保持时间较长的情况,它们会导致调用者睡眠,因...
分类:
系统相关 时间:
2014-06-15 16:34:46
阅读次数:
285
如果每个线程使用的变量都是其它线程不会读取或修改的,那么就不存在一致性问题。同样,如果变量是只读的,多个线程同时读取该变量也不会有一致性问题。否则,将会出现不一致性问题。为了解决数据不一致问题,必须引入某些机制使线程间同步。
当变量修改时间多于一个存储器访问周期,同时读、写操作又相互交替时,潜在的不一致性就会出现。如下图所示:
此时,线程B读取到的数据是错误的。使用一...
分类:
编程语言 时间:
2014-06-15 16:28:24
阅读次数:
254
短信界面没有关闭的情况下,在设置中进行操作,短信设置界面中不会进行刷新。因此在当MessagingPreferenceActivity处于活动(onResume)的时候重新初始化,添加代码如下:
protected void onResume() {
super.onResume();
loadPrefs();
// Si...
分类:
其他好文 时间:
2014-06-15 16:13:37
阅读次数:
169