线程_Tag标签_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
当前位置:程序员俱乐部 >>Tag标签 >> 线程 >>列表
dispatch源(dispatchsource)和RunLoop源概念上有些类似的地方,而且使用起来更简单。要很好地理解dispatch源,其实把它看成一种生产消费模式,而且很好用的生产消费模式。dispatch源好比生产的数据,当有新数据时,会自动在dispatch指定的队列(即消费队列)上运行相应地block,生产和消费同步是dispatch源会自动管理的。dispatch源的使用基本为以下步骤:1... 查看全文
· java多线程总结发布时间:2013-09-10
这一篇文章主要关于java多线程,主要还是以例子来驱动的。因为讲解多线程的书籍和文章已经很多了,所以我也不好意思多说,呵呵、大家可以去参考一些那些书籍。这个文章主要关于实际的一些问题。java中的多线程在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口。对于直接继承Thread的类来说,代码大致框架是:class类名extendsThread{方法1;方法2;…publicvoidrun(){//othercode…}属性1;属性2;…... 查看全文
GCD编程的核心就是dispatch队列,dispatchblock的执行最终都会放进某个队列中去进行,它类似NSOperationQueue但更复杂也更强大,并且可以嵌套使用。所以说,结合block实现的GCD,把函数闭包(Closure)的特性发挥得淋漓尽致。dispatch队列的生成可以有这几种方式:1.dispatch_queue_tqueue=dispatch_queue_create("com.dispatch.serial",DISPATCH_QUEUE_SERIAL)... 查看全文
谈起iOS的dispatch(正式称谓是GrandCentralDispatch或GCD),不得不说这又是iOS(包括MacOSX)平台的创新,优缺点这里不讨论,只有当你使用时才能真正体会到。我们说dispatch函数的主要目的是实现多任务并发代码,那么要理解dispatch函数,先来了解dispatch对象的定义。dispatch对象类型的部分定义,主要使用C语言的宏定义:<os/object.h>文件:#defineOS_OBJECT_CLASS(name... 查看全文
· Android在非UI线程中显示Toast发布时间:2013-09-07
publicvoidshowToast(Stringmsg){Looper.prepare();Toast.makeText(getApplicationContext(),msg,Toast.LENGTH_SHORT).show();Looper.loop();}只需要加上那两句就能在非UI线程中显示ToastToast里面的show()publicvoidshow(){...service.enqueueToast(pkg,tn,mDuration);//把这个toast插入到一个队列里面... 查看全文
· Java线程通信实现生产者-消费者发布时间:2013-09-04
生产者消费者是经典的线程之间同步通信问题,生产者线程只有在产品仓库中没有产品的时候才生产产品,当它生成完一个产品以后唤醒消费者线程,消费者线程只有在产品仓库中有产品的时候才能取走产品,然后唤醒生产者线程。Java可以有好几种方法解决这个问题。首先基础的当然是用Object的wait()、notify()和notifyAll()。产品仓库类://产品仓库publicclassProductStore{privatebooleanflag=false;publicbooleanhasProduct... 查看全文
· 多线程简单任务发布时间:2013-09-03
classProgram{staticAutoResetEventare=newAutoResetEvent(false);staticintticks=100;staticvoidMain(string[]args){Threadt1=newThread(newThreadStart(Saling));Threadt2=newThread(newThreadStart(Saling));Threadt3=newThread(newThreadStart(Saling))... 查看全文
使用线程新建窗体项目中需要一个公用的进度条窗体.大家知道在wpf中,有两个线程,一个是UI线程,另一个是监听线程(一直监听用户的输入).如果我们后台有阻塞UI线程的计算存在,那么界面上的比如进度条什么动态的UI都会被因为阻塞而静止不动.所以我的想法就是新起一个线程来负责进度条窗体的显示与关闭,具体实现代码如下:privatestaticThreadth;///<summary>///显示进度条线程///</summary>///<... 查看全文
//java单例模式-懒加载(保证线程安全性)publicstaticclassSingletonOptimizeLazy{staticSingletonOptimizeLazyinstance=null;publicstaticSingletonOptimizeLazygetInstance(){if(instance==null){createInstance();}returninstance;... 查看全文
· C++ 中线程安全的对象回调发布时间:2013-08-31
编写线程安全的类不是难事,用同步原语保护内部状态即可。但是对象的生与死不能由对象自身拥有的互斥器来保护。如何保证即将析构对象x的时候,不会有另一个线程正在调用x的成员函数?或者说,如何保证在执行x的成员函数期间,对象x不会在另一个线程被析构?如何避免这种竞态条件是C++多线程编程面临的基本问题,可以借助boost的shared_ptr和weak_ptr完美解决。这也是实现线程安全的Observer模式的必备技术。本文源自我在2009年12月上海C++技术大会的一场演讲《当析构函数遇到多线程》... 查看全文
· Java中断线程的方法发布时间:2013-08-31
在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,本文主要讲述Java中断线程的方法,更多Java专业知识,广州疯狂java培训为你讲解;hread.stop,Thread.suspend,Thread.resume和Runtime.runFinalizersOnExit这些终止线程运行的方法已经被废弃,使用它们是极端不安全的!现在,如果你要安全有效地终止一个线程,应该采用以下这些方法:1线程正常执行完毕,正常结束... 查看全文
· java多线程学习笔记发布时间:2013-08-27
问题情境:数据存储在搜索服务器,现需测试搜索提供查询更新接口性能,用户提交更新后立即查询,测试搜索接口实时性模拟多个用户同时查询提交多条数据,要求用户数、批量提交数、查询和提交时间间隔都为可配packagecom.ifeng.sisp.util;importjava.io.UnsupportedEncodingException;importjava.net.URLEncoder;importjava.text.ParseException;importjava.util.ArrayList... 查看全文
多线程中生产者消费者模式是非常重要的模式,如果之前的几个模式都通晓了,这个模式也就水到渠成了。废话少说,下面开始模拟.模拟功能需要实现如下要求:1,厨师(MakerThread)会做蛋糕(String)放在桌子(Table)上。2,桌子太小,顶多可以放3个蛋糕。3,桌上已经放满3个蛋糕,而厨师还要放上蛋糕的话,会等待到桌子上出现空间为止。4,客人(EaterThread)会拿桌上的蛋糕吃。5,桌上没有蛋糕时,客人又要拿蛋糕的话,会等待到蛋糕放到桌子上为止。涉及的类有... 查看全文
在GuardedSuspensionPattern保护暂停模式中,我们知道两个线程操作操作临界资源,其中一个线程生产临界资源,另一个消费临界资源,后者需要临界资源的数量必须大于0,如果不大于0线程就会进入临界资源实例的等待区(wait),直到生产线程生产了一个临界资源,之后通知所有在临界资源实例的等待区的所有等待线程,等待线程得到通知后再继续去消费临界资源。今天要介绍的是balk模式,退缩不前模式,意思就是当一个线程要去操作临界资源,在操作的时候需要判断一下是否满足操作的条件... 查看全文
第十二章java内存模型与线程1、主内存与工作内存java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量与java编程中所主的变量略有区别,它包括了实例字段、静态字段和构成数组对象的元素,但是不包括局部变量与方法参数,因为后者是线程私有的,不会被共享,自然就不存在竞争问题。java内存模型规定了所有的变量都存储在主内存中。每条线程还有自己的工作内存,线程的工作内存中保存了被该线程使用到的变量的主内存副本拷贝... 查看全文
· C#多线程编程发布时间:2013-08-25
一、使用线程的理由1、可以使用线程将代码同其他代码隔离,提高应用程序的可靠性。2、可以使用线程来简化编码。3、可以使用线程来实现并发执行。二、基本知识1、进程与线程:进程作为操作系统执行程序的基本单位,拥有应用程序的资源,进程包含线程,进程的资源被线程共享,线程不拥有资源。2、前台线程和后台线程:通过Thread类新建线程默认为前台线程。当所有前台线程关闭时,所有的后台线程也会被直接终止,不会抛出异常。3、挂起(Suspend)和唤醒(Resume):由于线程的执行顺序和程序的执行情况不可预知... 查看全文
· Android--多线程之图文混排发布时间:2013-08-23
前言本周一直在说Android多线程的那些事儿,本篇博客聊一聊Android开发中一个比较经典的案例,网络数据图文混排,本片博客的案例只涉及关于开启多线程访问网络数据,不涉及缓存的内容。众所周知,从网络上获取一段文本肯定要比获取一张张的图片要省时,所以一般如果是获取图片+文本的数据,会先开启一条线程获取文本数据,再从开启另外的线程来单独获取图片信息。本案例填充一个自定义的XML布局文件作为数据项,并使用ListView承载数据。数据准备本案例中的服务端数据以Json的形式传递,在服务端使用... 查看全文
.NET4.5在多线程的控制台里,Console.ReadKey()可能会造成线程死锁。看代码:staticvoidMain(string[]args){System.Timers.Timertimer=newSystem.Timers.Timer(1000);timer.Elapsed+=timer_Elapsed;timer.Enabled=true;Console.ReadKey();//使用Console.ReadLine();工作正常}staticvoidtimer_Elapsed... 查看全文
· Android--多线程之Looper发布时间:2013-08-22
前言上一篇博客讲解了Handler实现线程间通信,这篇博客讲解一下Handler运行的原理,其中涉及到MessageQueue、Looper。简要来讲,Handler会把一个线程消息发送给当前线程的消息队列,从最后Handler会处理消息队列中的消息,这里的消息队列就是MessageQueue,而管理消息队列的,就是Looper。Handler、MessageQueue、Looper三者间的关系如图:从上图可以看出,Handler发送线程消息到当前线程的MessageQueue中... 查看全文
· Android--多线程之Handler发布时间:2013-08-21
前言Android的消息传递机制是另外一种形式的“事件处理”,这种机制主要是为了解决Android应用中多线程的问题,在Android中不允许Activity新启动的线程访问该Activity里的UI组件,这样会导致新启动的线程无法改变UI组件的属性值。但实际开发中,很多地方需要在工作线程中改变UI组件的属性值,比如下载网络图片、动画等等。本篇博客主要介绍Handler是如何发送与处理线程上传递来的消息,并讲解Message的几种传递数据的方式... 查看全文