02 2025 档案
摘要:会产生死锁的必要条件 1.互斥使用,获取锁的过程是互斥的,一个线程拿了这把锁,另一个线程也想获取,就需要阻塞等待 2.不可抢占,前锁只有主动解锁,后锁才能获取到线程,不可抢行夺取 3.请求保持,线程在持有A的情况下,尝试获取锁B 4.循环等待 死锁一般有3种情况 1.一个线程一把锁 如果你设置的锁的
阅读全文
摘要:什么是线程安全 某个代码在单线程或者是多线程运行时没有出现bug就叫做线程安全 因为我们线程之间的调度是无序的也是随机调度的(抢占式执行) 当我们执行这两个线程时,希望输出的是10000000,但是我们这里的线程是存在线程安全问题的,因为这两个线程是并发执行的,count++是随机调度的, 什么是锁
阅读全文
摘要:启动线程 在同一个Thread的对象来说,start只可以调用一次,但是同时存在调用两个,会出现报错但是不会影响其中一个运行 终止线程 让线程的入口run方法提前结束 主要看代码如何写 把线程的判断条件写成一个变量,在增加判断条件,让变量改变,达到线程提前结束 如果把isQuit写成局部变量的话,l
阅读全文
摘要:jdbc是通过java代码操作数据库 先要下载驱动包,可以在中央仓库上下载https://mvnrepository.com/,就直接搜索我们的所需要的数据库,点中图片第二个 进来后就有相对应的版本,选择自己需要的版本 点进去之后点击jar即可下载 下载完之后打开我们的idea,创建一个目录 在把刚
阅读全文
摘要:什么是泛型 就是把类当作数据类型的参数,指定当前的容器持有什么类型的对象 在类名后面添加一个<T>说明他是一个泛型类,可以直接使用这个T去进行传参和接收, 当我们实例化这个对象的时候就可以在类名后面加上<数据类型(这里要写包装类的名字)>指定类型,后面的<>可以不写类型,当获取这个值的时候并不需要在
阅读全文
摘要:进程 1.是资源分配的基本单元 2.拥有独立的内存空间和资源 3.开销较大 4.稳定性高,一个进程的崩溃不会影响其他的进程 线程 1.是cpu调度的基本单元 2.共享进程的资源 3.开销较小 4.稳定性不高,一个线程崩溃可能会导致其他线程的崩溃 当我们写完一个线程之后可以通过idea的安装位置中的有
阅读全文