在使用多线程时,一般很少有多个线程完全独立的工作。往往是多个线程同时操作一个全局变量来获取程序的运行结果。多个线程同时访问同一个全局变量,如果都是读取操作,则不会出现问题。如果是写操作,则会发生错误。这时候,我们可以通过临界区,为全局变量设置一个保护,保证同时只有一个线程可以访问此变量,其他变量进入等待状态。
临界区(Critical Section)是一段独占对某些共享资源访问...
分类:
编程语言 时间:
2014-05-14 00:10:15
阅读次数:
399
这个错误很常见,基本上写线程操作都遇到过这个错误。根本原因是view控件的线程安全问题,通俗点讲就是所有的更新UI操作都需要在主线程(也就是UI线程中完成),而不能在新开的子线程中操作。
基本思路:既然子线程需要更新UI,但子线程自身又不能完成任务,所以只能通过建立一个通信机制,当子线程需要更新UI时,发消息通知主线程并将更新UI的任务post给主线程,让主线程来完成分内的UI更新操作。这个...
分类:
其他好文 时间:
2014-05-13 09:04:37
阅读次数:
311
前言
学习任何一个稍有难度的技术,要对其有充分理性的分析,之后果断做出决定---->也就是人们常说的“多谋善断";本系列虽然涉及的是socket相关的知识,但学习之前,更想和广大程序员分享的是一种心境微笑:学习是一个循序渐进的过程,心态应该随时调节,保持戒骄戒躁的状态。比如最近在看网易公开课MIT《算法导论》,老师提到,学习算法之前要计算机数学+离散数学+概率论等课程的知识,所以一直学不好算法的程序员不妨从基础入手,这都是中国式教育惹的祸啊!(此处省略一万字......)...
分类:
编程语言 时间:
2014-05-13 08:52:15
阅读次数:
394
Poco是一个开源的C++库,各方面功能比较全面,包括日志\多线程\文件系统\定时器\网络\配之文件等,同时使用也十分简单.
本文对其中的日志模块进行了简单的试用....
分类:
其他好文 时间:
2014-05-13 08:51:14
阅读次数:
431
Person's solution 是用来一种基于软件的解决关键区域问题的算法(critical-section).
它并非完美的,有可能不正确地工作。而且是限制解决两个进程同步的问题。
但是它很简单,很原始,学习起来也是很轻松的。
代码如下:
do {
flag[i] = true;
turn = j;
while (flag[j] && turn == j...
分类:
编程语言 时间:
2014-05-13 08:01:01
阅读次数:
407
多线程协同线程间的通讯:我们对资源的操作动作不同,比如说两个卡车一个拉煤一个装煤。但是他们共享了一个资源。怎么样把这个资源拿出来?怎样把车装满?这个资源当然是一个类,他里面的组成元素就是对象!!现在我们就要有操作对象的思想了,我用对象把这车装满,现在一车装..
分类:
编程语言 时间:
2014-05-13 02:42:52
阅读次数:
452
Thinking in java 琐碎知识点之 I/O流 、对象序列化...
分类:
编程语言 时间:
2014-05-13 00:34:22
阅读次数:
436
在并发编程时,一般使用runnable,然后扔给线程池完事,这种情况下不需要线程的结果。所以run的返回值是void类型。如果是一个多线程协作程序,比如菲波拉切数列,1,1,2,3,5,8...使用多线程来计算。但后者需要前者的结果,就需要用callable接口了。callable用法和runnab...
分类:
其他好文 时间:
2014-05-12 20:54:47
阅读次数:
491
参考:http://www.cnblogs.com/maitian-lf/p/3678128.html
分类:
编程语言 时间:
2014-05-12 20:23:08
阅读次数:
207