多线程

一、进程
1.是程序关于某个数据集合的执行过程
2.有自己的内存空间和系统资源
3.是一个正在运行的程序

二、多进程
1.在一台电脑上可以执行多个任务
2.提高cpu运行效率

三、线程
1.是进程的一条执行路径
2.一个进程中可以有多个线程
3.生命周期:
创建:仅仅初始化对象,没有线程特征
就绪:当调用start(),表示有资格运行但还没有权限运行,取决于jvm调度
运行:有资格运行,有权限运行,开始执行run()
阻塞:线程处于无资格无权限运行,当被激活之后处于就绪状态
结束:run()结束或产生异常,变成垃圾被jvm回收线程回收

四、多线程
1.提高程序运行效率
2.线程运行具有随机性(抢占式调度模型)

五、并行与并发
1.并行:是在某一个时间段同时运行程序
2.并发:在某一个时间点同时运行

六、java创建多线程
java不能够直接调用系统函数创建线程,通过调用c/c++程序来创建进程
m1:继承Thread类

//实现thread类
public class Csdn extends Thread{
public static void main(String[] args) {
Csdn csdn=new Csdn();
csdn.start();//调用start方法开启线程,jvm来调用run方法
}
@Override
public void run() {
System.out.println("线程所执行的代码");
}
}

m2:实现runnable接口

public class Csdn implements Runnable { 
 @Override
 public void run() {
  System.out.println("线程代码开始了");
 }
 public static void main(String[] args) {
  //创建实现的对象
  Csdn csdn=new Csdn();
  //创建thread对象
  Thread thread=new Thread(csdn);
  thread.start();
 }
}

七、多线程同步出现的问题
使用

//synchronized关键字
public void run() {
  
  synchronized (new Object()) {
   while(true)
    if(count>=0){
     System.out.println(Thread.currentThread().getName()+":出售1张,还剩"+count--);
    }
  }

实现同步锁保证,不出现异常。
但是,每次判断会降低效率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值