- 博客(28)
- 收藏
- 关注
原创 线程的状态
此时当调用start之后,main线程会进入sleep(200),以此来确保t线程在sleep(1000)之中,所以此时t线程的状态就是TIME_WATING;以上就是线程的六种状态,其中4,5,6是一类阻塞状态,而第六种状态是针对等待的线程,而不是被等待的线程。此处调用start之后,t线程就一直在CPU上运行,因为有个while循环,所以会是RUNNABLE;此处,是main线程等待t线程,所以对于main线程来说,main线程的状态是WATING。此处t.getState()就会是NEW;
2024-09-23 21:46:21
257
原创 Java中多线程的终止
这是因为在执行t.interrput()时,t线程还在sleep当中,此时t.interrput()不仅会设置标志位,还会将sleep给唤醒,而sleep被唤醒之后,又会清空刚才设置的标志位,抛出Runntime异常,又因为这个异常并未被catch,所以会出现上述情况,正确的做法是将 原来的throw删掉,直接写上return/break就好了。在Java中终止线程是一个比较温柔的过程,是让线程中的run方法执行完,被终止线程自己决定要不要终止,没有其他线程的干扰。先要获取到线程的引用。
2024-09-23 20:38:05
341
原创 Java多线程的代码实现
/创建出的线程需要执行的逻辑。//创建出的线程需要执行的逻辑。//创建出的线程需要执行的逻辑。//真正在系统内核创建线程。//创建出的线程需要执行的逻辑。//真正在系统内核创建线程。//真正在系统内核创建线程。
2024-09-16 10:48:13
433
原创 Java中多线程start和run的区别
start调用方法后,start方法内部会调用java本地方法,真正的启动线程,并执行run方法中的代码 ,run方法执行完之后进入销毁阶段。run方法是一个类中的普通方法,主动调用和调用普通方法一样,会顺序执行一次。start方法的作用是真正的申请系统线程,去创建一个线程。run方法的作用是描述线程具体要执行的任务。
2024-09-16 10:19:09
250
原创 【Java】多线程
现代CPU都是多核心CPU,为了更好的利用这些核心,我们引入了多进程编程,也就是 ‘并发编程’,但是由于进程的创建和销毁的开销太大,会消耗太多的时间和空间,一旦需求场景要求频繁的创建和销毁进程,这时候开销就会特别明显,为了解决开销比较大的问题,发明了 ‘线程’,线程可以理解成是更轻量的进程,也能解决并发编程的问题,但是线程的创建和销毁的开销更低,因此,多线程成了当下主流的并发编程方式。同样和进程一样,如果多个线程在一个进程之中,每个线程都会有自己的状态,优先级,上下文,记账信息。
2024-09-15 08:53:42
371
原创 CPU进程的调度
这个时候操作系统就会对进程进行调度,进程调度的关键就是 ‘分时复用’ ,对于单核cpu来说,这个时刻CPU运行进程1,然后下一个时刻,CPU运行进程2,然后再下一个时刻,CPU运行进程3.........由于CPU的运算速度非常快,所以肉眼是观察不到的,站在宏观(人)的角度来看,这样的过程可以看作是同时执行,所以可以叫做 ‘并发执行’。上述调度的过程都是由系统内核完成的,但是程序员在写代码的时候是会收到影响的,所以作为一个程序员还是要了解这个过程的。谁先来,谁后来,谁多,谁少的问题。
2024-09-13 20:11:26
254
原创 数据库的索引
2):它的叶子节点是全集,并且用类似于链表的结构连接,这样就非常便于范围查询(如果查询从4到9的整数集,只需要找到4和9的叶子节点,然后从4开始往后遍历到9就好);3):B+树所有的查询都是要落到叶子节点上完成的,任何一次查询,经历的硬盘IO次数和比较次数都差不多,这样就使得查询开销非常稳定;目的是为了加快查询的速度,就像书的目录一样,会消耗纸张,索引会消耗额外的硬盘空间,还可能会影响到增删改的效率,3):删除索引 (危险操作,只能删自己创建的索引,不能删自动生成的索引)数据库的索引类似于书的目录,
2024-08-23 14:59:36
144
原创 MySQL中的数据表操作
以下操作的前提,都是在选中数据库的操作之后进行的,use 数据库名;① 查看当前数据库中,有哪些表 这里是我提前创建了这些列,不然都是Empty set;② 创建表 ③ 查看表的详细信息这里的详细信息指的是数据表中的列, 和相应列的类型........ ④ 删除表
2024-08-03 11:26:07
154
1
原创 MySQL中的数据库操作
① 展示数据库: ② 创建数据库: ③ 选中数据库: ④ 删除数据库: if not exists 和 if exists 可以穿插在这些语句中间:
2024-08-03 11:01:59
224
原创 MySQL中的模糊匹配Like
select * from student where name like '_ _林';select * from student where name like '张%';例如:查找student表中名字为三个个字,且结尾为林的同学。例如:查找student表中姓张的,且名字为两个字的同学。例如:查找student表中姓张的同学。例如:查找英文名字中带有A的同学。
2024-08-03 10:26:50
243
原创 【Java】计数排序
计数排序要知道数据的范围,适合用于集中在某一集合的数据。1:计数排序是非基于比较的排序。时间复杂度:O(n +范围);//1.先找出数据的范围。空间复杂度:O(范围);
2024-05-28 00:23:05
157
原创 【Java】String,Integer,Character之间的相互转换
一:String 和 Integer1:String 转 Integer2:Integer 转 String 二:String 和 Character1:String 转 Character2:character 转 String三:Character 和 Integer1:Character 转 Integer
2024-05-13 20:35:46
407
原创 【JavaSE】在java中生成随机数的用法和表面理解
但是种子只是提供一个算法,每次运行程序时随机数并没有改变,实际随机数的范围还是通过nextInt()来控制,控制方法和效果和上文形同,如果想要改变随机数则要改变种子数。这里其实就是在new Random的括号里加了一个int类型的数,这就叫种子。这里有一个用法就是如果要生成[1 , 6]之间的随机数,可以。方法一:(不带种子的)
2024-04-23 20:58:21
204
原创 【JavaSE】内部类
这里就是直接创建了一个匿名对象,通过it来访问test,这里还发生了动态绑定。匿名内部类与接口有关,是在“实例化接口”的过程中创建的匿名对象,及。然后就可以通过inner来访问InnerClass里面的成员了。此时的date1访问的就是外部类的date1,及打印1。此时的访问也是外部类的date1,及打印1。不能被public,static等修饰。a:如何实例化内部类: 可以通过。定义在类的内部,方法的外部,如。只能在所定义的方法体内部使用。这两行代码来实例化,定义在外部类的方法内。
2024-04-16 17:50:22
280
1
原创 【C语言】有关自定义函数中数组传参问题【冒泡程序】
/输入数据 符合题目要求在main函数中。//函数的返回类型是void,sz为数组元素个数。
2023-12-14 19:39:53
438
1
原创 【C语言】有关scanf,printf,gets,puts,getchar,putchar函数输出输入字符串时的表层区别
/正常输入就好,不用空格隔开 ,一次只会读取一个字符。//正常输入就好,不用空格隔开 ,一次只会读取一个字符。//创建字符数组ch。//创建字符数组ch。//创建字符数组ch。//创建字符数组ch。//创建字符数组ch。//创建字符数组ch。//创建字符数组ch。
2023-12-10 15:47:12
587
1
原创 【C语言】有关变长数组的运用
例如:创建一个变长数组sum,数组sum的数据个数由自己输入。正确编程:A(形式参数在数组创建前被输入数据)另外变长数组在VS2022上是编译不了的。其实从上面两个代码来看变长数组不用初始化。,并且数组的形式参数要在数组创建的语句。这样数组sum就能存放n个整型数。B(形式参数在数组创建前被赋值)这样数组sum也能存放n个整型数。以此类推,二维变长数组也如此。
2023-12-09 21:34:09
679
原创 【C语言】在C语言编写中遇到Run-Time Check Failure #2问题
我们要存入自己输入的十个字符,但由于。小伙伴们在编写C语言程序时会遇到。
2023-11-29 22:59:57
620
1
原创 【Keil5】在keil5中将第二个项目的代码转换成HEX文件后找不到了?
1.我们用Keil5创建了一个实现一个LED灯亮的代码并把它转换成了HEX文件(这里就叫LED1吧),在Proteus8中能找到。
2023-11-25 20:16:50
3785
原创 在 keil5中点亮一个LED灯,流水灯(AT89c51)
1.打开keil5 2. 创建新项目3.自己取一个文件名并保存(小编就叫LED3)3.在search里搜索AT89c51并点击OK4.这里选YES5.点击target前的加号6.右击source group后在点击Add new item to Group7.选择C File,文件名一般为main,然后点击OK8.写代码,这里先让一个LED灯亮,编写完要点击左上角第二个地方编译, - 0 Error(s), 0 Warning(s)就成功了,如果失败了就重写,然后点击左上角第四个重新编译流水灯
2023-11-24 10:03:58
5638
2
原创 在C语言中编写有关时间的输出程序时补0的问题
很多小伙伴们在编写有关时间输出问题时总被0给困扰,计算程序已经写的非常好,但最后输出时不标准;但很多人总是在秒上少一个0,例如11:10:2;最后输出正确的是 11:10:02;这里就是对%d的运用,
2023-11-23 12:42:19
765
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人