线程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_42005432/article/details/79966014
1:进程
    进程是操作系统的一个任务(应用程序运行在一个进程中)。
    进程是含有某些资源的内存区域。进程中会有一个线程或者
    是多个线程
     举例说明:OS(操作系统)会打开多个应用程序,如可以
          打开视频软件,音频软件,qq,wechat
2:线程
     线程是进程中的一个顺序执行流(顺序执行流是有程序启动入口,程序逻辑和程序结束出口)。
     线程是应用程序中的一个任务(此任务完成了一个功能) 
     举例说明:视频软件打开后,会有缓冲功能,播放功能 
3:进程和线程的区别
     进程是针对于OS级别来说的一个任务。线程是针对于app级别来说的
     一个任务。线程有自己独立的堆栈空间,线程属于进程中的一部分,
     多个线程可以共享进程的内存空间。线程之间的切换比较轻负荷。
     线程又叫轻负荷进程。
4:并发
   在计算机中,宏观上,多个线程,发现可以"同时运行",
   其实在微观上是断断续续的。cpu会将一段时间划分成无数微小
   的时间片段,然后把时间片段尽可能的平均随机的分配给某一个
   线程,(其他线程处于等待状态)进行微观的,肉眼感知
   不到的间歇性运行。这就是并发。实际上并不是我们所说的"同时进行"。
   并发可以提高效率。
5:线程的状态
6:线程的创建
  (1)继承Thread类完成线程的创建。
    Thread类是类型,里面的run()需要实现,写要执行
         的任务逻辑代码。

         线程启动时,调用start(),不能调用run()。

7:线程安全的常用类型API
  StringBuilder
  StingBuffer
  String
8:集合中的ArrayList和HashSet,Map
      都是线程不安全的
   main{
      T t =new T();
      //此时有两个线程都可以访问t
      //其中一个线程调用run(),另外一个线程
      //调用show方法,但是因为方法上了锁,
      //锁对象是t,所以,在运行run()时,运行show方法
      //的线程处于阻塞状态。
   }
   public class T{
      public synchronized void run(){
      }
      public synchronized void show(){
      }
   }
线程池:
  线程池就是java中提供了一个类型Executors
  此类型提供了多种创建线程池的方法来进行管理线程。   
  线程池就是含有多个线程的一个对象。当服务器上的多个线程结束
  或 者是线程之间的切换都会频繁的消耗系统内存。我们可以在创建
  一定数量的线程后,不结束这些线程,当任务执行完后,让这些线程
  继续执行其他的任务。就会大大的减少了内存消耗。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页