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

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
当前位置:程序员俱乐部 >>Tag标签 >> 线程 >>列表
· JAVA多线程(四)发布时间:2011-12-01
死锁1、何为死锁简单说来,死锁就是系统中的线程因相互等侍彼此占有的资源而暂停执行,造成系统假死的现象。2、死锁是如何发生的假设系统有两个互斥资源A和B,系统中的两个线程1和2都要获得A和B之后才能正常工作,但是线程1先取资源A再取资源B,线程2先取资源B再取资源A。这样就有可能发生这样的情况:线程1先申请了资源A,再准备申请资源B的时候,由于处理器调度,线程2开始执行;线程2申请了资源B,在准备取资源A的时候发现资源A已经被别的线程(1)占用了,这样线程2暂停执行;当线程1接着执行时... 查看全文
· JAVA中线程同步方法发布时间:2011-11-29
1wait方法:该方法属于Object的方法,wait方法的作用是使得当前调用wait方法所在部分(代码块)的线程停止执行,并释放当前获得的调用wait所在的代码块的锁,并在其他线程调用notify或者notifyAll方法时恢复到竞争锁状态(一旦获得锁就恢复执行)。调用wait方法需要注意几点:第一点:wait被调用的时候必须在拥有锁(即synchronized修饰的)的代码块中。第二点:恢复执行后,从wait的下一条语句开始执行,因而wait方法总是应当在while循环中调用... 查看全文
线程间的竞争叫做Racing,正如这篇文章的图片一样,不同的线程好比在高速赛道上行驶的F1方程式赛车,当赛车在各自的赛道上互不影响各自行驶时,可以相安无事。但这是一场比赛,既然是比赛,必然有并线、超车的行为,此时两辆赛车很可能会挤到赛道中公共的部分,如果此时两车速度相差不多,而且距离差距不大,就极有可能发生可怕的事故。在计算机世界里,不同的线程运行的程序就好比不同赛道上的赛车。如果各个线程相互独立,完全没有关系,不会相互影响。但实际情况往往没有这么简单,线程可能会共同访问某个共享资源... 查看全文
· JAVA多线程性能测试发布时间:2011-11-25
importjava.util.concurrent.CountDownLatch;publicclassTest{publicstaticvoidmain(String[]args){intnum=100000;test1(num);test2(num);}privatestaticvoidtest1(intmax){longt1=System.currentTimeMillis();intn=method1(max);longt2=System.currentTimeMillis()... 查看全文
· linux下用c++产生线程发布时间:2011-11-24
在c++编译环境下编译pthread_create会报错,出现问题的主要原因就是pthread_create的第3个参数——void*(void*)这个回调函数。下面给出解决方法:将要调用的函数改成静态函数或全局函数:#include<iostream>usingnamespacestd;#include<pthread.h>void*Bar(void*arg){cout<<__PRETTY_FUNCTION__<<endl;}classFoo... 查看全文
· Java线程新同步机制发布时间:2011-11-23
Java线程新的同步机制1.可重入锁ReentrantLock,相当于synchronized块,为临界区提供互斥访问机制.(1).相关的接口创建一个可重入锁Locklock=newReentrantLock();请求锁,如果锁被当前另一个线程持有,则阻塞。voidlock()释放锁voidunlock();非阻塞型lock()booleantryLock();(2).使用基本结构locker.lock();try{//codeheretoaccessthecirticalsection... 查看全文
· 一道经典线程面试题的4种解法发布时间:2011-11-11
http://www.iteye.com/topic/1117703一道经典线程面试题的4种解法一个关于线程的经典面试题,要求用三个线程,按顺序打印1,2,3,4,5....71,72,73,74,75.线程1先打印1,2,3,4,5,然后是线程2打印6,7,8,9,10,然后是线程3打印11,12,13,14,15.接着再由线程1打印16,17,18,19,20....以此类推,直到线程3打印到75。简单的分析一下题目要求。从题目考察的角度看,题目考的是线程同步知识,既然是顺序打印... 查看全文
/**一个类中要访问多个线程,同时又用到格式化日期类时,格式化日期类对象不能同时访问多个线程*访问多个线程,格式化日期类会出现意想不到的格式化错误,一个线程只能对应一个格式化日期类*author:wuxqdate:2011-10-26*/packagebiz;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassTest{privateSimpleDateFormatdateFormat... 查看全文
· PHP中的(伪)多线程与多进程发布时间:2011-11-09
已经因为没怎么需要,所以没有查这个的资料。最近有一个项目却是需要这样子的功能。查看了PHP的手册和他人的例子,了解到基本的两种方法:(伪)多线程:借助外力利用WEB服务器本身的多线程来处理,从WEB服务器多次调用我们需要实现多线程的程序。以下转载自:http://www.laikan8.com/21/118472.htmlQUOTE:我们知道PHP本身是不支持多线程的,但是我们的WEB服务器是支持多线程的.也就是说可以同时让多人一起访问.这也是我在PHP中实现多线程的基础... 查看全文
· 线程池的使用发布时间:2011-11-07
1、通过创建一个拥有固定数目的线程的线程池2、每次启动指定数目线程去执行任务,把线程的创建、维护交给线程池来管理3、将多线程任务设置到定时任务中,观察线程执行情况==============如果不采用线程池,在我机器上运行大概35秒钟,程序就挂了!!!packagethreads;importjava.util.ArrayList;importjava.util.List;importjava.util.Timer;importjava.util.TimerTask;importjava... 查看全文
· 线程的7种状态及相互转换发布时间:2011-11-07
今天有同事问到线程的问题,自己突然就有点蒙了,只模糊的记得个大概。当初学习线程的时候把这7个状态记得比自己名字还熟悉还把这7个状态编成了一段凄惨而美丽的爱情故事没想到如今却只能记得个大概真验证了“好记性不如烂笔头”的真理还是赶快回忆一下吧先从图片开始小小的作下解释:1、线程的实现有两种方式,一是继承Thread类,二是实现Runnable接口,但不管怎样,当我们new了这个对象后,线程就进入了初始状态;2、当该对象调用了start()方法,就进入可运行状态;3、进入可运行状态后... 查看全文
coolxing按:转载请注明作者和出处,如有谬误,欢迎在评论中指正.]问题的描述启动3个线程打印递增的数字,线程1先打印1,2,3,4,5,然后是线程2打印6,7,8,9,10,然后是线程3打印11,12,13,14,15.接着再由线程1打印16,17,18,19,20....以此类推,直到打印到75.程序的输出结果应该为:线程1:1线程1:2线程1:3线程1:4线程1:5线程2:6线程2:7线程2:8线程2:9线程2:10...线程3:71线程3:72线程3:73线程3:74线程3... 查看全文
· java并发编程--线程池初步发布时间:2011-11-07
[coolxing按:转载请注明作者和出处,如有谬误,欢迎在评论中指正.]服务器应用程序经常需要处理执行时间很短而数目巨大的请求,如果为每一个请求创建一个新的线程,会导致一些问题的出现,如:1.性能瓶颈.线程的创建和销毁需要执行大量的后台操作,如果单个请求的执行时间很短,有可能花在创建和销毁线程上的时间大于真正执行请求的时间.2.可能会导致资源不足.大量的并发请求意味着需要创建大量的线程,过多的线程存在会吞噬大量的系统资源,而且CPU需要在这些线程间不断切换,这可能引发"切换过度"的问题... 查看全文
1、java命令和javaw命令是怎么回事?我现在的理解:java命令在执行一个class文件的时候,(1)首先要创建一个虚拟机实例(2)虚拟机启动用户主线程main()方法,这是非守护线程(3)虚拟机(也可能是主线程)启动守护线程。比如垃圾收集线程。(4)main()方法结束,并且由main()方法创建的用户线程也结束。也就是说系统中没有用户线程存在了,则守护线程也结束,最后虚拟机实例自动销毁。javaw命令在eclipse启动后,也是代表了一个虚拟机实例... 查看全文
当网络阻塞时,虽然RUBY的线程是非原生线程,其作用还是在服务器端用phpg写了一个小页面,软件是用nginx+fastcgi,spawn-fcgi设置-C为20,启动20个进程,这样在多线程测试才有效,不然就是一个phpcgi进程上面的队列,必须等第一个请求完成,第二个请求才会处理php页面代码<?phpsleep(3);phpinfo();?>rub测试端require'open-uri's=Time.nowputss10.timesdoopen("http... 查看全文
· java Android socket 多线程 总结发布时间:2011-10-27
今天做了一个多线程的例子,多个Android手机和电脑通信。首先要说的时候我的一个理解误区,也是我最大的收获。先说一下socket,比如while(true){Socketsc=ServerSocker.accept();}我一直以为这个阻塞是自己的while循环产生的,后来差资料发现,accept()方法自己产生阻塞,也就说进入while循环以后,代码会停在Socketsc=ServerSocker.accept();这一行,知道有链接请求,才会进入下一个循环,继续等待连接,在那里阻塞... 查看全文
· (四)线程属性发布时间:2011-10-25
线程属性包括:线程优先级、守护线程、线程组和处理未捕获异常的处理器。1.线程优先级在Java程序设计语言中,每一个线程都有一个优先级。默认情况下,一个线程继承它的父线程的优先级。可以将优先级设置为MIN_PRIORITY(在Thread类中定义为1)与MAX_PRIORITY(定义为10)之间的任何值。每当线程调度器有机会选择新线程时,它首先选择有较高优先级的线程。注意:线程优先级是高度依赖于系统的。当虚拟机依赖于宿主机平台的线程实现机制时,JAVA的优先级被映射到宿主机平台的优先级上... 查看全文
· (三) 线程状态发布时间:2011-10-25
1.新生线程当new一个线程时,如newThread(r),该线程的状态是new。当一个线程处于新生状态时,程序还有没有开始运行线程中的代码。在线程运行之前还有一些簿记工作要做。2.可运行线程调用start()方法,线程处于runnable状态。可能运行也可能没有运行,取决于系统(线程的优先级和时间片机制)。在具有多个处理器的机器上,每个处理器,运行一个线程,可以有多个线程并行运行(如果线程多出处理器的数目,调度器依然采用时间片机制)。3.被阻塞线程和等待线程当线程处于被阻塞或等待状态时... 查看全文
· java 守护线程发布时间:2011-10-21
很多人都迷糊守护线程和正常的线程有什么区别,我只想说一下我的理解。首先代码上的区别:java里面创建线程有两种方式,一个是实现Runnable接口,另一个就是集成Thread,创建守护线程,就是通过调用Thread的setDaemon(true);,调用start之后,这个线程就是守护线程啦,代码上就这么点区别。不解释了,大家应该都明白了。另外有一点要提的就是,你创建的线程,里面还是可以创建子线程的,如果父线程是守护线程的话,那么子线程也是守护线程,反之正常的线程也是一样的。运行之后的区别... 查看全文
· Java 线程池的原理与实现 发布时间:2011-10-20
创建线程有两种方式:继承Thread或实现Runnable。Thread实现了Runnable接口,提供了一个空的run()方法,所以不论是继承Thread还是实现Runnable,都要有自己的run()方法。一个线程创建后就存在,调用start()方法就开始运行(执行run()方法),调用wait进入等待或调用sleep进入休眠期,顺利运行完毕或休眠被中断或运行过程中出现异常而退出。wait和sleep比较:sleep方法有:sleep(longmillis),sleep... 查看全文