线程初步

        Java线程机制基于来自C语言的低级的p线程方式,你创建任务,并通过某种方式将一个线程附着到任务上,使得这个线程可以驱动任务

        并发程序性能:上下文切换---并发导致性能降低  并发会解决线程阻塞问题
        进程是系统对一个正在运行的程序的一种抽象,一个系统可以同时运行多个进程,每次用户通过向外部系统输入一个可执行目标文件的名字,并运行一个程序时,系统就会创建一个新的进程,然后在新的进程的上下文中运行这个可执行目标文件;应用程序也能够创建新的的进程,并且在这个新的进程的上下文中运行它们自己的代码或者其他应用程序

        进程提供给应用程序的关键抽象:
        1.一个独立的逻辑控制流,他提供了一个假象,好像程序独占使用处理器
        2.一个私有的地址空间,提供一个假象,程序服战使用存储器系统
      
       并发运行则是说一个进程的指令和另一个进程的指令交错执行(系统机制上下文切换)
线程:是比进程更小的执行单位,线程是在进程的基础上进一步划分出来,线程是程序执行的一条路径,一个进程中可以包含多个线程

进程与线程区别
线程是进行相应进程的执行单元
线程运行在其所在进程所开辟的内存空间中/上下文中(由程序正确运行所需的状态的组合)
一个进程所有的线程都共享其开辟的内存,共享同样的代码和全局数据

==>什么是多线程?多线程的应用场景?
          多线程是实现了并发机制的一种有效手段,一个进程中可以包含多条线程,多个线程可以同时存在,同时运行,可以提高程序的效果,可以完成多项工作
例如:
1.word检查拼写单词
2.迅雷(下载时开启多条线程一起下载)
3.QQ同时和多个人视频或者聊天
4.服务器同时处理客户端发起的请求


线程
          同基于进程相似,线程也是由内核自动调度,并且内核通过一个整数ID来识别线程,同基于I/O多路复用的流一样,多个线程运行在单一进程的上下文中,因此共享这个进程虚拟地址空间的整个内容,包括代码、数据、堆、共享库和打开文件。
        每个进程开始生命周期时都是单一线程,这个线程称为主线程(并发线程要比并发进程快得多,线程上下文比进程上下文小,切换快的多)和一个进程相关的线程组成一个对等线程池

==>并行/并发
并发(多任务/一个中心、多个控制流):指的是一个同时具有多个活动的系统/逻辑控制刘在时间上重叠
并行(快/多核 具有并发流的应用程序能减少交错执行):是用并发使一个系统运行的更快
多核心可以在多个核上并行的调度这些并发线程,而不是在单核上顺序调度。写顺序程序只有一条逻辑流;写并发程序有多条并发流
并行程序是一个运行在多个处理器上的并发程序。因此,并行程序的集合是并发程序集合的真子集。
并行可以在计算机系统的多个抽象层次上运用

==》线程级并发
构建进程这个抽象,我们能够设计出同时执行多个系统的程序,这就导致了并发。使用线程,甚至可以在一个进程中执行多个控制流
单处理器系统:并发通过是在一台计算机执行的进程间快速切换的方式实现的。
就好像杂技演员保持多个球在空中飞舞,这种并发允许多个客户于系统交互
多处理器系统:多核与超线程技术  超线程:允许一个CPU执行多个控制流的技术   多核可以减少执行多个任务时模拟并发的需要
一个构建并发服务器的自然方法就是,在父进程中接收客户端的链接请求,然后创建一个新的进程来为每个新的客户端提供服务

==》线程(Thread类)
使用一个类基础于Thread类,此类就可以称为多线程操作类,在Thread子类中必须明确的重写run()方法,此方法就是线程的主体
在Java中Thread类自身不执行任何操作,他只是驱动赋予它的任务。Thread:进程的一个执行单元(进程下的一个线程)
线程是程序中执行的一个部分,JVM允许应用程序并发的运行多个线程

在程序執行中,start()方法只是启动run()方法线程,然后start()方法返回,run()方法开启线程一直运行
main()方法创建Thread对象时,在它的任务退出其run()方法并死亡之前,垃圾回收期无法清除他
一个线程会创建一个单独的执行线程,在对start()的调用完成后,他仍然会继续存在

          后台线程,是指在程序运行的时候在后台提供一种通用服务的线程,并且这种线程并不属于程序中不可或缺的部分,因此,所有的非后台线程结束时,程序也就终止了,同时杀死进程中所有的后台线程,反过来说,只要任何非后台线程还在运行,程序就不会终止。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值