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

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
当前位置:程序员俱乐部 >>Tag标签 >> 线程 >>列表
· C#多线程与UI响应 跨线程更新UI发布时间:2014-11-28
最近在写一个TCP通信程序,自定义了一个通信类TCPclient,用于客户端异步接收和发送网络消息。TCPclient中定义了一个接收到新的网络消息事件:1//收到新消息事件2publicdelegatevoidreceiveNewNetworkMsgHandler(stringnetworkMSG);3publiceventreceiveNewNetworkMsgHandlerreceiveNewNetworkMsg;在外部的窗体中订阅了此事件... 查看全文
Java并发包里面提供了ThreadGroup类可以帮助我们有效地管理线程组。让我们来看一个生动的例子.Java线程组可以有线程对象或者子线程组组成。也就是说ThreadGroup可以是产生线程树。让我们看一个简单的例子,这个例子模仿一个搜索任务,将启动10个线程遍历获取指定目录下面的excel文件列表,一旦有一个线程完成遍历,将中断其余的9个任务。Java代码importjava.io.File;importjava.util.concurrent.TimeUnit... 查看全文
前两天翻阅《EffectiveJava》发现一条提示慎用线程组。ThreadGroup提供的很多功能的实现是有瑕疵的。例如,我们可以调用activeCount获得该组中活动线程的数量,一旦这个数组进行了分配,并用enumerate方法遍历,如果线程数增加了,就有可能忽略掉调用activeCount后新增的线程。关于处理线程组逻辑,可以用线程池的executor代替。也许ThreadGroup提供的有用的功能之一就是uncaughtException方法了。Java提供了强大的异常处理机制... 查看全文
· 后台与前台线程发布时间:2014-11-26
摘自MSDN托管线程或者是后台线程,或者是前台线程。后台线程不会使托管执行环境处于运行状态,除此之外,后台线程与前台线程是一样的。一旦所有前台线程在托管进程(其中.exe文件是托管程序集)中被停止,系统将停止所有后台线程并关闭。注意当运行库因为进程关闭而停止某个后台线程时,不会在该线程中引发异常。但是,当线程是因为System.AppDomain.Unload(System.AppDomain)方法卸载应用程序域而停止时,将同时在后台和前台线程中引发ThreadAbortException... 查看全文
当有大量数据需要计算、显示在界面或者调用sleep函数时,容易导致界面卡死,可以采用多线程加委托的方法解决。usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Threading... 查看全文
最近用ffmpeg监听文件夹批量转化视频文件,在调用runtime.exec()多个ffmpeg.exe进程启动但是挂起,java程序关闭后这些进程开始工作。网上找了文章解释如下:JavaRuntimeexeccanhangThenextversionofSavantisgoingtofocusheavilyonthestand-aloneruntimeandsupportfordialectsandplugins... 查看全文
最近遇到一个问题原本虚拟机分配了2G的堆大小,发现OS用top命令看,进程的VIRT内存一直增加,而且RES也一直往上增加,最后前者达到了16G,后者达到了8G,最后内存整个进程宕调后来尝试重现问题,打了JAVA线程堆栈,发现堆栈里面大量的pool的线程,多达上万个。就是有个人写代码,误用JAVA线程池,每次用都新new一个线程池ThreadPoolExecutor,最后自己写代码测试,确实每次new会占用堆外堆存,没有跟踪到底层,但是线程池是管理线程的,虚拟机线程肯定是要跟OS申请线程资源的... 查看全文
本文只针对C#中,多线程同步所用到的锁(lock)作为研究对象。由于想更直观的显示结果,所以,在做demo的时候,就把多线程通过事件操作UI的代码也写了出来,留作备忘和分享吧。其实多线程的同步,使用同步锁的方法用了好多次,今天无意中看到MSDN中,建议用:1privatestaticreadonlyobjectlocker1=newobject();2privatereadonlyobjectlocker2=newobject();备注:原文并没有加readonly,是我后来自己加进去的... 查看全文
· Java多线程的交替执行发布时间:2014-11-17
读完ThinkInJava的多线程,深有感悟,花了1个小时,写了一个多线程交替执行程序,大家可以参考,如有好的意见,请提出,谢谢!packagecom.thread;publicclassThreadTestimplementsRunnable{publicvoidrun(){intj=0;while(true){try{synchronized(this){if(j==5){j=0;Tmp.getA().setOnoff(true);Tmp.getA().Notify();wait();... 查看全文
一、场景最近需要在页面上展现一个通过http请求微信服务接口而生成的带参二维码,用户扫描后可以体验到关注公众号、显示一些动态消息、注册会员等功能。然而在测试的中发现通过微信接口生成二维码这个过程偶尔会发生超时或者其他异常,这时候需要把图片替换为一张静态的二维码图片;如果这种情况在一段期间内反复发生(譬如微信接口服务突然挂了),将会影响用户使用我们系统的体验,因此需要有个fallback的策略。二、静默模式策略设置请求接口生成动态二维码的http超时和线程超时时间... 查看全文
· Servlet用内部类加载多线程发布时间:2014-11-14
这些天,一直在做一个web小项目,也就是练习一下Servlet,昨晚,想在网站中增加一个统计访问量的功能,因为考虑到用多线程每隔一定的时间去自动的保存访问量,会更准确(因为,你不用隔一段去保存访问量,如果突然断电了,访问量就会失去了),想法是好的,但做起来,还真的不容易:以下程序是没有加载线程importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.FileNotFoundException... 查看全文
· 【学习笔记】多线程发布时间:2014-11-13
网络上关于多线程的原理和用法的解释,随便一搜一大堆,但是那个宽泛过于学术性的解释,我看着太费力了。我就用自己比较容易理解的白话来记录一下我学到的知识吧。一、进程在移动端,一个app就是一个进程,在内存中占用一定的空间。在计算机里,一个程序就是一个进程,同样也占用内存空间。iOS同一时间点只有一个进程在使用CPU,只是系统把这个时间片分割地非常短,造成一种多个进程同时在执行的假象。二、线程一个进程的执行,必然从一个主线程开始。整个应用可以由单个主线程运行,但是涉及到一些耗时的任务... 查看全文
近来找了一些关于android线程间通信的资料,整理学习了一下,并制作了一个简单的例子。andriod提供了Handler和Looper来满足线程间的通信。例如一个子线程从网络上下载了一副图片,当它下载完成后会发送消息给主线程,这个消息是通过绑定在主线程的Handler来传递的。在Android,这里的线程分为有消息循环的线程和没有消息循环的线程,有消息循环的线程一般都会有一个Looper,这个事android的新概念。我们的主线程(UI线程)就是一个消息循环的线程。针对这种消息循环的机制... 查看全文
很久没有写博客了,最近的项目不用写代码。今天没事就看看thread之间的参数传递方式,这里主要适用于运行在不同线程的两个方法之间参数传递。直接看代码1。方法之间直接传递参数voidDemoParam(){Console.WriteLine("DemoParam:"+Thread.CurrentThread.ManagedThreadId);//Threadt=newThread(newParameterizedThreadStart(testparam));//t.Start... 查看全文
小例子:创建三个线程A,B,C,A线程循环10次,接着B线程再循环10次,然后C线程再循环10次,然后A线程又循环10次,如此循环往复50次。代码如下:publicclassThreeThreadCommunication{publicstaticvoidmain(String[]args){finalBusinessbusiness=newBusiness();newThread(newRunnable(){@Overridepublicvoidrun(){for(inti=1;i<... 查看全文
这几天太忙没时间写博客,今天回家就简单的看了下ThreadPool的源码,发现有一个好玩的东西,叫做”执行上下文“,拽名叫做:”ExecutionContext“。一:ThreadPool的大概流程。第一步:它会调用底层一个helper方法。第二步:走进这个helper方法,我们会发现有一个队列,并且这个队列的item必须是QueueUserWorkItemCallback的实例,然后这就激发了我的兴趣... 查看全文
问题一:"iscurrentlyinuse"出现的场景是这样的,多线程操作数据库,每个线程都使用了FMDatabase实例(注意没有使用FMDatabaseQueue)。问题二:“databaseislocked"出现的场景是这样的,多线程操作数据库,每个线程各自创建了FMDatabaseQueue实例操作数据库,或者一个线程创建FMDatabaseQueue实例来操作,而另外的线程创建了FMDatabase实例来操作。解决:FMDB多线程操作数据库... 查看全文
IIS连接数一般购买过虚拟主机的朋友都熟悉购买时,会限制IIS连接数,这边先从普通不懂代码用户角度理解IIS连接数顾名思义即为IIS服务器可以同时容纳客户请求的最高连接数,准确的说应该叫“IIS限制连接数”这边客户请求的连接内容包括:1、网站html请求,html中的图片资源,html中的脚本资源,其他需要连接下载的资源等等,任何一个资源的请求即一次连接(虽然有的资源请求连接响应很快)2、如果网页采用框架(框架内部嵌套网页请求),那么一个框架即一次连接3... 查看全文
· java 守护线程发布时间:2014-10-29
java守护线程的定义:1.所谓守护线程就是运行在程序后台的线程,程序的主线程Main(比方java程序一开始启动时创建的那个线程)不会是守护线程.2.Daemonthread在Java里面的定义是,如果虚拟机中只有Daemonthread在运行,则虚拟机退出。虚拟机中可能会同时有很多个线程在运行,只有当所有的非守护线程都结束的时候,虚拟机的进程才会结束,不管在运行的线程是不是main()线程。3.Main主线程结束了(Non-daemonthread)... 查看全文
· java 线程同步发布时间:2014-10-28
通过在方法声明中加入synchronized关键字,可以声明同步方法publicsynchronizedvoidfetchMoney(){synchronized(this){...}}synchronized方法控制对对象成员的访问,每个对象对应一把锁,每个synchronized方法都必须获得调度该方法的对象才能执行,本方法一旦执行就独享该锁,直到从本方法中返回才释放,然后被阻塞的线程可以获得锁而投入运行状态,这种同步机制确保了同一时刻对于同一类的不同对象... 查看全文