做性能测试的时候遇到一个很奇怪的问题,多线程的计划,有一个线程第一次能跑过,第二次确跑不过,单独跑这个线程跑多少次都没有问题,把思考时间改短也没有问题,唯独出现在特定的状态下,特定状态是啥,也不得而知,反正是几个设置叠加再一起碰巧出现。。。我就郁闷了。。。墙外的朋友貌似都有人遇到,墙内的没搜到,所以 ...
分类:
编程语言 时间:
2016-05-27 21:55:13
阅读次数:
1514
常见的Linux服务端的开发模型有多进程、多线程和IO复用,即select、poll和epoll三种方式,其中现在广泛使用的IO模型主要epoll,关于该模型的性能相较于select和poll要好不少,本文也主要讨论该模型而忽略另外两种IO复用模型。 多线程相较于多进程开销比较小,但是要主要主线程往 ...
分类:
系统相关 时间:
2016-05-27 21:38:06
阅读次数:
286
一直想把这个特别重要的关键词的底层实现搞明白。(当然现在也没有完全明白,如果有错误以后修改这篇文章) 首先,这个关键词synchronize可以说是个语法糖,它的具体用法网上很多博客都讲的比较明了了。 简而言之就是对一个对象“加锁”。首先,找个地方的对象不一定是堆里面的类的实例对象,也有可能是方法区 ...
分类:
编程语言 时间:
2016-05-27 20:07:20
阅读次数:
250
分别通过多进程、多线程方式处理文件,将结果保存到一个list中: 1.多进程: 2.多线程: 结论:多进程和多线程在分别处理每个文件,将结果写入各自tmp list中,多线程耗时2.468s,多线程耗时4.24s,多进程优于多线程(进程数量未控制,默认CPU核心数量)。 但当多线程各结果写入到共享变 ...
分类:
编程语言 时间:
2016-05-27 18:31:33
阅读次数:
199
单例模式: 思考:如何实现多线程下的单例模式呢? 首先我们要知道单例分为两种模式: 懒汉模式和恶汉模式。 懒汉模式:在类加载的时候不创建实例,运行调用的时候创建类。优点:加载速度快!缺点:在运行的时候获取对象慢! 以上的代码就是懒汉式,符合多线程下的单例模式,但是多线程下一般不使用! 饿汉模式:在类 ...
分类:
编程语言 时间:
2016-05-27 18:18:02
阅读次数:
216
线程的状态:线程共有下面4种状态:新建状态(New):新创建了一个线程对象,当你用new创建一个线程时,该线程尚未运行。就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。阻塞状态(Blocked):阻塞状态是线程因为某种原因放...
分类:
编程语言 时间:
2016-05-27 16:52:07
阅读次数:
212
转自http://blog.chinaunix.net/uid-20788636-id-1841334.html 1.线程创建和退出创建线程实际上就是确定调用该线程函数的入口点,这里通常使用的函数是pthread_create。在线程创建以后,就开始运行相关的线程函数,在该函数运行完之后,该线程也就 ...
分类:
编程语言 时间:
2016-05-27 16:49:45
阅读次数:
304
单例模式: 思考:如何实现多线程下的单例模式呢?首先我们要知道单例分为两种模式: 懒汉模式和恶汉模式。 懒汉模式:在类加载的时候不创建实例,运行调用的时候创建类。优点:加载速度快!缺点:在运行的时候获取对象慢! 以上的代码就是懒汉式,符合多线程下的单例模式,但是多线程下一般不使用! 饿汉模式:在类加 ...
分类:
编程语言 时间:
2016-05-27 16:44:51
阅读次数:
226
1多线程安全单例模式一(不使用同步锁). 2.多线程安全单例模式一(使用同步锁). 3.多线程安全单例模式一(使用双重同步锁). ...
分类:
编程语言 时间:
2016-05-27 16:15:49
阅读次数:
127
单例模式: 一.如何使用多线程单例模式? 首先我们要知道有哪两种单例模式: 1.懒汉模式:在类加载的时候不创建实例,运行调用时创建类! 优点:加载速度快! 缺点:在寻星时过去对象慢! 2.饿汉模式:在类加载时,就完成初始工作,所以加载速度慢,但是在运行时获取对象的速度快! 在创建实例的方法中有两部判 ...
分类:
编程语言 时间:
2016-05-27 16:15:21
阅读次数:
188