`
jackchunyang
  • 浏览: 6154 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

蓝杰学习小结—线程

 
阅读更多

线程:一个独立的运行单位

31号学习了线程,在此之前我编写的所有Java程序都只有一个主线程,而线程的加入可以让程序在主线程下加入分线程,让程序具备同时进行多项工作的可能

多线程OS中,通常是在一个进程中包括多个线程,每个线程都是作为利用CPU的基本单位,是花费最小开销的实体。线程具有以下属性。

1)轻型实体

线程中的实体基本上不拥有系统资源,只是有一点必不可少的、能保证独立运行的资源,比如,在每个线程中都应具有一个用于控制线程运行的线程控制块TCB,用于指示被执行指令序列的程序计数器、保留局部变量、少数状态参数和返回地址等的一组寄存器堆栈

2)独立调度和分派的基本单位。

在多线程OS中,线程是能独立运行的基本单位,因而也是独立调度和分派的基本单位。由于线程很,故线程的切换非常迅速且开销小(在同一进程中的)。

3)可并发执行。

在一个进程中的多个线程之间,可以并发执行,甚至允许在一个进程中所有线程都能并发执行;同样,不同进程中的线程也能并发执行,充分利用和发挥了处理机与外围设备并行工作的能力。

4)共享进程资源。

在同一进程中的各个线程,都可以共享该进程所拥有的资源,这首先表现在:所有线程都具有相同的地址空间(进程的地址空间),这意味着,线程可以访问该地址空间的每一个虚地址;此外,还可以访问进程所拥有的已打开文件、定时器、信号量机构等。由于同一个进程内的线程共享内存文件,所以线程之间互相通信不必调用内核

 

 

这便是最简单的一个线程程序了,主程序下只有一个线程



 

 

而这样就可以创建5个线程



 

而线程远不止这一种创建方法,还有通过内部类,通过Runable接口创建线程,通过Timertask创建等

其中Timertask提供了几种方法特别好用,比如scherule方法,他可以让线程在程序启动后n毫秒后启动

并隔m毫秒运行一次。

 

  • 大小: 7.5 KB
  • 大小: 2.6 KB
  • 大小: 9.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics