学习java第五天 线程

并发和并行

       并发执行是指在一个时间段内,多个线程使用一个CPU,进行交替的运行。

       并行是指在同一时刻,多个线程各自2使用一个CPU,同时进行运行。

线程组

        在主线程中创建一个线程对象,它的线程组默认就是主线程线程组。

   Thread t = new Thread(); 
   //获取当前线程所属的线程组
   ThreadGroup threadGroup = t.getThreadGroup(); 
   System.out.println(threadGroup)

        可以指定把当前线程存放到指定的线程组中。

    ThreadGroup group = new ThreadGroup("我的线程组"); 
 //指定线程所属的线程组 
    Thread t = new Thread(group,"t线程"); 
    ThreadGroup threadGroup = t.getThreadGroup(); 
    System.out.println(threadGroup);

线程的状态

New 新建:线程刚被创建,还没调用start方法。

Runnable:线程存活着,并且在尝试去抢占CPU资源。

Blocked:锁阻塞状态,多个线程都要执行方法,并且方法被加了锁,某个线程拿了锁去执行

方法,这时候其他的线程进入锁阻塞状态。

Waiting:无限期等待,需要另外一个线程notify或者notifyall才能唤醒。

Time_Waiting:有限期等待,等时间到了线程就会主动醒过来。

Dead:run方法结束。

 线程安全

        JVM 内存中的堆区,是一个共享的区域,是所有线程都可以访问的内存空间。
        JVM 内存中的栈区,是线程的私有空间,每个线程都有自己的栈区,别的线程无法访问到自己栈区的数据。
        
         多线程环境中,如果有俩个线程并发访问堆区中一个对象中的数据,那么这个数据可能会出现和预期结果不符的情况。
线程同步的效果,就是一段加锁的代码,每次只能有一个拿到锁的线程,才有资格去执行,没有拿到的
        锁的线程,只能等拿到锁的线程把代码执行完,再把锁给释放了,它才能去拿这个锁然后再运行代码。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值