thread_Tag标签_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
当前位置:程序员俱乐部 >>Tag标签 >> thread >>列表
C++0X标准提供的std::mutex和std::thread两个接口开发多线程同的应用非常方便,而且可以跨平台,自己做了一下测试,发现这个跨平台的代价还是很大的,我分别用std::mutex与Windows的CRITICAL_SECTION、std::thead和WIndows的CreateThread接口做了对比,测试代码如下:#include"stdafx.h"#include<mutex>#include<atomic>#include<... 查看全文
· [Multithreading]关于Monitor总结发布时间:2013-07-16
Monitor类通过向单个线程授予对象锁来控制对对象的访问。对象锁提供限制访问代码块(通常称为临界区)的能力。当一个线程拥有对象的锁时,其他任何线程都不能获取该锁。还可以使用Monitor来确保不会允许其他任何线程访问正在由锁的所有者执行的应用程序代码节,除非另一个线程正在使用其他的锁定对象执行该代码。使用Monitor锁定对象(即引用类型)而不是值类型。Monitor具有以下功能:它根据需要与某个对象相关联。它是未绑定的,也就是说可以直接从任何上下文调用它。不能创建Monitor类的实例... 查看全文
· [Multithreading]关于Mutex总结发布时间:2013-07-16
当两个或更多线程需要同时访问一个共享资源时,系统需要使用同步机制来确保一次只有一个线程使用该资源。Mutex是同步基元,它只向一个线程授予对共享资源的独占访问权。如果一个线程获取了互斥体,则要获取该互斥体的第二个线程将被挂起,直到第一个线程释放该互斥体。可以使用WaitHandle.WaitOne方法请求互斥体的所属权。拥有互斥体的线程可以在对WaitOne的重复调用中请求相同的互斥体而不会阻止其执行。但线程必须调用ReleaseMutex方法同样多的次数以释放互斥体的所属权... 查看全文
· ThreadLocal杂谈发布时间:2013-07-16
用过Spring的可能都知道,Spring将Dao层的JavaBean可以设置成Singleton并生成这个Singleton的实例。但是Singleton的JavaBean应该是无状态的(另外的一个意思就是这个JavaBean是线程安全的),但是数据库操作是有状态的,比如Connection对象就是有状态的,应该对于每个执行数据库操作的每个线程都有一个Connection对象。那如何用Singleton实例实现线程安全呢。答案就是ThreadLcoal。ThreadLcoal是从JDK1... 查看全文
· java ThreadLocal详解发布时间:2013-07-11
publicclassThreadLocalTest{ThreadLocal<String>tl=newThreadLocal<String>();ThreadLocal<String>t2=newThreadLocal<String>();/***@authorzlz**@time2013-7-11上午10:14:50*@paramargs*/publicstaticvoidmain(String[]args)... 查看全文
· 浅谈Java线程启动与Thread.join()发布时间:2013-07-10
java中线程的启动有两种方式:classTextendsThread{Stringname;publicT(Stringn){name=n;}publicvoidrun(){try{for(inti=0;i<2;i++){System.out.println("-------"+name);}}catch(Exceptione){}}}classT1implementsRunnable{Stringname;publicT1(Stringn){name=n;... 查看全文
· ThreadPoolExecutor异常处理发布时间:2013-06-19
java.util.concurrent包中的ThreadPoolExecutor,提供了java语言的线程池,你可以提交一个返回结果的任务(submit(Callable),返回Future),或者执行一个不返回结果的任务(execute(Runnable)),但提交的任务可能会抛异常,这就需要处理异常:1.对于submit的任务,框架会将异常保持在future里,并包装在ExecutionException里,当调用Future.get()时,再次throw... 查看全文
· ThreadLocal杂谈发布时间:2013-06-19
用过Spring的可能都知道,Spring将Dao层的JavaBean可以设置成Singleton并生成这个Singleton的实例。但是Singleton的JavaBean应该是无状态的(另外的一个意思就是这个JavaBean是线程安全的),但是数据库操作是有状态的,比如Connection对象就是有状态的,应该对于每个执行数据库操作的每个线程都有一个Connection对象。那如何用Singleton实例实现线程安全呢。答案就是ThreadLcoal。ThreadLcoal是从JDK1... 查看全文
· ThreadPoolExecutor异常处理发布时间:2013-06-19
java.util.concurrent包中的ThreadPoolExecutor,提供了java语言的线程池,你可以提交一个返回结果的任务(submit(Callable),返回Future),或者执行一个不返回结果的任务(execute(Runnable)),但提交的任务可能会抛异常,这就需要处理异常:1.对于submit的任务,框架会将异常保持在future里,并包装在ExecutionException里,当调用Future.get()时,再次throw... 查看全文
· ThreadLocal杂谈发布时间:2013-06-19
用过Spring的可能都知道,Spring将Dao层的JavaBean可以设置成Singleton并生成这个Singleton的实例。但是Singleton的JavaBean应该是无状态的(另外的一个意思就是这个JavaBean是线程安全的),但是数据库操作是有状态的,比如Connection对象就是有状态的,应该对于每个执行数据库操作的每个线程都有一个Connection对象。那如何用Singleton实例实现线程安全呢。答案就是ThreadLcoal。ThreadLcoal是从JDK1... 查看全文
动态代理:JDK动态代理只能对实现了接口的类进入代理,采用JDK动态代理必须实现InvocationHandler接口,采用Proxy类创建相应的代理类.下面使用Model2(MVC)使用代理事务查询用户基本信息,使用DB2数据库:建立表:createtableT_USER(USER_IDVARCHAR(10)notnull,USER_NAMEVARCHAR(30)notnull,PASSWORDVARCHAR(20)notnull,CONTACT_TELVARCHAR(30)... 查看全文
动态代理:JDK动态代理只能对实现了接口的类进入代理,采用JDK动态代理必须实现InvocationHandler接口,采用Proxy类创建相应的代理类.下面使用Model2(MVC)使用代理事务查询用户基本信息,使用DB2数据库:建立表:createtableT_USER(USER_IDVARCHAR(10)notnull,USER_NAMEVARCHAR(30)notnull,PASSWORDVARCHAR(20)notnull,CONTACT_TELVARCHAR(30)... 查看全文
· 配置ThreadPoolExecutor发布时间:2012-04-10
[本文是我对JavaConcurrencyInPracticeC08的归纳和总结.转载请注明作者和出处,如有谬误,欢迎在评论中指正.]Executors的静态方法newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool所返回的线程池都是ThreadPoolExecutor对象或者其子类对象.ThreadPoolExecutor提供了多种配置,可以根据实际定制合适的线程池... 查看全文
想验证一下多线程下数据共享出错的问题,在下面的程序中定义了一个简单的堆栈,并且两个线程向堆栈中压入数据和弹出数据。为了让它出错,在MyStack类中,当数据存入到数组之后,指针修改之前调用了Thread.sleep方法使之休眠。但后来将这一段代码加上同步锁之后,似乎没起到同步的作用啊代码如下:packagenit.thread;classMyStack{privateint[]data=newint[10];privateintp=0;publicvoidpush(intvalue)... 查看全文
· [转]有关 Thread.Sleep(2000)发布时间:2012-02-22
学习source,看到了下面一段代码try{Thread.sleep(2000);}catch(InterruptedExceptione){}首先这段代码的作用是使当前进程沉睡2S,展现给用户的结果就是画面维持两秒,有个“正在启动”的感觉而已。其实,之前还有看到过sleep(0)的时候,这又是什么作用呢?百度之,搜到一篇超有趣的讲解,贴过来,备忘。PS.期待有一天,我也有这能力,把恶心巴拉的东西搞得这么有趣味。我们可能经常会用到Thread.Sleep函数来使线程挂起一段时间... 查看全文
TBB(IntelThreadingBuildingBlocks)学习笔记并行与并发是相对的,OS里讲的是并发而在架构方面更多的是说并行。并行是分多个层面的,个人认为基本上可以分为这么几个层面:1、指令级的并行;即所谓的微程序、指令流水线等,现在cpu的一级缓存、二级缓存都很大,所以这个cache的效果还是比较好的(基于局部性原理)2、线程级的并行;即同一个时刻多个函数在运行(现在的cpu好像都是多核的)3、服务级别的(比如一个游戏服务器中有商店服务、也有战斗服务... 查看全文
一、如何选择PHP5.3的VC9版本和VC6版本VC6版本是使用VisualStudio6编译器编译的,如果你的PHP是用Apache来架设的,那你就选择VC6版本。VC9版本是使用VisualStudio2008编译器编译的,如果你的PHP是用IIS来架设的,那你就选择VC9版本。二、如何选择PHP5.3的ThreadSafe和NonThreadSafe版本Windows版的PHP从版本5.2.1开始有ThreadSafe(线程安全)和NoneThreadSafe(NTS,非线程安全)之分... 查看全文
· JVM中可生成的最大Thread数量 发布时间:2011-11-22
最近想测试下Openfire下的最大并发数,需要开大量线程来模拟客户端。对于一个JVM实例到底能开多少个线程一直心存疑惑,所以打算实际测试下,简单google了把,找到影响线程数量的因素有下面几个:-Xmsintialjavaheapsize-Xmxmaximumjavaheapsize-Xssthestacksizeforeachthread系统限制系统最大可开线程数测试程序如下:importjava.util.concurrent.atomic.AtomicInteger... 查看全文
· ThreadPool发布时间:2011-11-08
最近面试被问到这个问题,正好找个线程池的实现代码,温习一下/**线程池类,工作线程作为其内部类**/packageorg.ymcn.util;importjava.util.Collections;importjava.util.Date;importjava.util.LinkedList;importjava.util.List;importorg.apache.log4j.Logger;/***线程池*创建线程池,销毁线程池... 查看全文
Exceptioninthread"main"java.lang.OutOfMemoryError:Javaheapspace解决方案[转]一直都知道可以设置jvmheap大小,一直用eclipse写/调试java程序。一直用命令行orconsole加参数跑程序。现象:在eclipse的配置文件eclipse.ini中设置-vmargs-Xms500m-Xmx1024m,在eclipse中直接run或者debug某些耗内存的程序时依然出现java.lang.OutOfMemoryError... 查看全文