多线程与锁(1)

多线程与锁(1)

  • 线程与进程

    • 进程
      • 计算机系统程序运行的基本单位
    • 线程
      • 多个线程可以存活在一个进程里面,执行相同的任务,提高程序效率和cpu利用率.
      • java多线程通过抢占cpu资源实现
    • 线程与进程的区别,关联,优缺点
      • 区别
        • ⼀个进程中可以有多个线程,多个线程共享进程的堆和⽅法区 (JDK1.8 之后的元空间)资源,但是每个线程有⾃⼰的程序计数器、虚拟机栈 和 本地⽅法栈。
      • 总结
        • 线程 是 进程 划分成的更⼩的运⾏单位。线程和进程最⼤的不同在于基本上各进程是独⽴的,⽽各线程则不⼀定,因为同⼀进程中的线程极有可能会相互影响。线程执⾏开销⼩,但不利于资源的管理和保护;⽽进程正相反
  • ⼀句话简单了解堆和⽅法区

    • 堆和⽅法区是所有线程共享的资源,其中堆是进程中最⼤的⼀块内存,主要⽤于存放新创建的对象 (所有对象都在这⾥分配内存),⽅法区主要⽤于存放已被加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
  • 并行与并发

    • 并行
      • 同一时间内,多个任务都在执行
    • 并发
      • 单位时间内,多个任务都在执行,交替执行,不是同时.
  • 线程的生命周期和状态

    • 状态
      1. NEW 初始状态
      2. RUNNABLE 运行状态
      3. BLOCKED 阻塞状态 阻塞于锁
      4. WAITING 等待状态 等待别的线程通知或打断
      5. TIMED_WAITING 限时等待状态
      6. TERMINATED 终止状态
    • 生命周期
      线程的生命周期
  • 实现多线程编程

    • 继承Thread类

      • class MyThread extends Thread{
            @Override
            public void run(){
               //实际运行代码
         	}
        }
        
        Mythread mythread=new Mythread();
        mythread.start();
        
    • 实现Runnable接口

      • Runnable myRunnable = new Runnable(){
             @Override
             public void run(){
        		//实际运行代码
             }
        };
        
        myRunnable.run();
        
    • 实现Callable接口+线程池

      • 后续细说
  • 线程池

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值