极客时间线程作业题

题目1 什么是线程和进程

进程是正在运行的一个程序,
线程是进程里的一个执行单元。
不同的进程有自己独立的内存空间,线程的内存空间比较复杂,堆和方法区是共享的,栈是独有的。
CPU将时间片轮流分配给不同线程执行,在切换线程时cpu需要将上一个线程执行的相关信息保存下来以供下次又轮到该线程执行时使用,同时需要找到下一个要执行的线程的信息。这个过程叫做线程的上下文切换。
线程的并发是单位时间段有多个线程执行,并行是单位时间段有多个线程同时执行。

题目2 使用了多线程会带来什么问题

线程安全
线程安全问题是多个线程访问共享资源时出现的异常情况
原子性 类似于数据库层面的原子性,全都成功或者全不成功
有序性 程序指令执行的顺序就是程序中能看到的,显式的顺序
可见性 一个线程对共享变量的修改能被另一个线程看到

题目3 什么是死锁

线程1在拥有锁A的前提下尝试获取锁B,并且在获取到锁B之前不会释放A,线程2在拥有锁B的前提下尝试获取锁A,并且在获取到锁A之前不会释放锁B。此时两个线程会无限等待下去,发生死锁。
jps -l 可以显式的看到死锁输出,但不知道如何在不知道发生了死锁的情况下定位到发生了死锁*

题目4 synchronized,volatile的原理区别

JMM内存模型是线程的内存空间和主内存之间的关系,线程不是直接操作主内存中的变量,操作的是本地的副本
synchronized可以修饰代码块,修饰函数。实现方式之前是锁,后来是管程,满足原子性,可见性和

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值