标签:
线程是什么呢?我们先来看一下官方的解释,线程,有时被称为轻量级进程是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。每一个程序都至少有一个线程,若程序只有一个线程,那就是程序本身。
线程是程序中一个单一的顺序控制流程。进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。
我觉得线程就好像是boss的下属,线程的boss就是主函数(也可以说是我们的程序),boss分配了任务给下属,下属就自己完成,boss不会再理会,当然我们的线程下属很强大,任务是会自觉完成的。并且我们的线程下属也可以去拥有线程下属,而线程下属是互相不干扰的,自己做自己的事,所以他们办事的先后顺序是没有办法完全控制的。线程下属能是没有多少资源的,也就是说,只有进行任务是必须所必须的资源,但是线程下属可以和其他线程下属共享boss拥有的全部资源,毕竟大家都是一伙的。而多线程就是boss有多个下属啦,另外线程是进程的一个独立运行的单位,可以说是进程由线程组成,可以是一个线程,也可以是多个线程;而进程能就是在运行中的程序;而程序只有一个线程的时候,那么线程就是boss,boss也是就是程序啦;
然后呢我们再来看一看进程,进程能是运行中的程序,工作中的boss,boss都要自己的工作地方,进程是在内存上运行,线程是在进程中运行,线程是不会有自己独立的内存空间的,线程在运行后,无法获取其他线程改变对象,属性或变量,也就是线程质检,在开始工作之后,就不能愉快的沟通了。而在变量前加上volatile就可以解决了。
1.线程的实现的两种方法:
一:继承Tread类;
run()运行方法;
start()启动线程的方法;
sleep(int time)线程休眠的方法 ,参数是休眠的时长;
二:实现Runnable接口
只存在线程的run()运行方法;
2.实现Runnable接口比继承Thread类所具有的优势:
1):适合多个相同的程序代码的线程去处理同一个资源
2):可以避免java中的单继承的限制
3):增加程序的健壮性,代码可以被多个线程共享,代码和数据独立。
标签:
原文地址:http://www.cnblogs.com/hesi/p/5750866.html