2003 年,Herb Sutter 在他的文章 “The Free Lunch Is Over” 中揭露了行业中最不可告人的一个小秘密,他明确论证了处理器在速度上的发展已经走到了尽头,并且将由全新的单芯片上的并行 “内核”(虚拟 CPU)所取代。这一发现对编程社区造成了不小的冲击,因为正确创建线程...
分类:
其他好文 时间:
2015-04-01 23:44:53
阅读次数:
170
http://www.cppblog.com/prayer/archive/2012/04/23/172427.html这两天在看Pthread 资料的时候,无意中看到这样一句话(man pthread_detach):Either pthread_join(3) or pthread_detach...
分类:
编程语言 时间:
2015-03-31 17:46:03
阅读次数:
186
多 线 程
进程:正在执行中的程序,每一个进程中都有一个控制单元。
线程:就是进程中的一个独立控制单元,控制着进程的执行,虚拟机在启动时会有一个进程java.sexe,该进程至少有一个线程,在负责程序的执行,而这个线程运行的代码存放在main方法中,该线程称之为主线程。
创建线程的第一种方式:定义类实现Runnable接口,复写Runnbale类中的run方法,将实现了Runnabl...
分类:
其他好文 时间:
2015-03-31 10:58:47
阅读次数:
361
1、线程的状态
1.1创建 线程 的两种方式,接口和线程类。利用接口的好处:更好的体现面向对象的思想,可以避免由于Java的单继承特性而带来的局限;
增强程序的健壮性,代码能够被多个线程共享,代码与数据是独立的;(同步问题)适合多个相同程序代码的线程区处理同一资源的情况。
1.2线程就绪等待调度运行start()方法。
1.3线程的中断
这里需要注意的是,...
分类:
编程语言 时间:
2015-03-29 10:53:28
阅读次数:
180
创建继承Thread的线程/*
* 创建线程方式一:继承自Thread
* 步骤:
* 1.自定义类,继承自Thread类
* 2.重写run()方法
* 3.创建类的实例,即创建一个线程
* 4.调用线程的start()方法,作用:启动线程、调用run()方法
*
*
* Thread的run方法,用于存储线程要执行的代码,必须重写此方法
* 启动线程时会自动调用此方法...
分类:
编程语言 时间:
2015-03-28 17:18:34
阅读次数:
146
创建实现Runnable接口的线程/*
* 创建线程方式二:实现Runnable接口
* 步骤:
* 1.创建一个Runnable接口的实现类
* 2.实现run方法
* 3.创建一个实现类的实例
* 4.创建Thread实例,将实现类的实例作为参数传入
* 5.调用start方法,启动线程并运行run方法
*/class MyDemo implements Runnable{...
分类:
编程语言 时间:
2015-03-28 17:18:23
阅读次数:
169
java中创建线程有两种方式: 1.继承Thread类 步骤: (1)定义一个类继承Thread类(2)复写Thread类中的run()方法 (3)调用start()方法:启动线程及调用run()方法 2.实现Runnable接口的方式步骤:(1)定义一个类实现Runnable接口 (2)覆盖Run...
分类:
编程语言 时间:
2015-03-27 21:59:02
阅读次数:
267
在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例。因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例。Thread构造函数:public Thread( );p...
分类:
编程语言 时间:
2015-03-20 18:26:48
阅读次数:
159
前言:
什么是多线程?比如在做一些下载的程序时,同时开启5个下载任务,对应的其实就是多线程。在一些多线程的程序中,响应请求的个数(即线程)的个数过多的话就会造成系统资源损耗过多而宕机,一般最多线程是有上限的,而且每次创建线程和销毁线程都会大量损耗资源和时间。所以解决办法之一就是使用线程池控制线程个数,复用创建过的线程。线程池可以减少创建和切换线程的额外开销,利用已经存在的线程多次循环执行...
分类:
编程语言 时间:
2015-03-20 10:56:30
阅读次数:
528
GCD全称Grand Central Dispatch,可译为“大派发中枢调度器”,以纯C语言写成,提供了许多非常强大的函数。GCD是苹果公司为多核的并行运算提出的解决方案,它可以自动利用更多的CPU内核来参与运算,会自动管理线程的生命周(创建线程、调度任务、销毁线程),而程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码!
GCD中有两个核心概念,一是任务,二是队列。...
分类:
移动开发 时间:
2015-03-19 22:04:57
阅读次数:
175