自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 Spring的学习

1.Spring:学后面的东西之前要先完全掌握Spring及其Spring MVC,这是一个承上启下的作用,但Spring的弊端是配置太多,直到学到SpringBoot才能解放。以上的优点和整合语句建议观看文章的人可以跟着敲完,有个印象,等后面学完之后就能明白为什么Spring是一个轻量级的具备控制反转(IOC)和面向切面编程(AOP)能力的框架了。2.SpringBoot:是一个快速开发的脚手架,基于SpringBoot可以快速的开发单个的微小的服务,约定大于配置。以下为Spring构成的七大模块。

2024-03-09 16:34:15 371

原创 多线程的学习:day6 线程同步(多线程的重点和难点)

6.1创建 一个卖票的类实现Runnable接口——>既然卖票就需要有“票”这个变量——>既然是有动作发生那么我们需要标志位变量让其能停止——>可拆写一个卖票的方法,然后在run()方法里面运行它。举个例子说明:现实生活中,我们会遇到”同一个资源,多个人都想使用”的问题,比如,食堂排队打饭,每个人都想吃饭,最天然的解决办法就是,排队.一个个来。实现Runnable接口的类的对象,并创建几个线程,模拟多人购票的场景,里面里面传入name变量是因为使用了。所以线程同步也有另外一种广为人知的叫法:并发!

2024-03-09 15:24:16 294

原创 多线程的学习:day6 守护线程和线程礼让的区别

总结:守护线程和线程礼让是两种不同的概念,守护线程是一种特殊类型的线程,而线程礼让是线程之间的一种协作机制。守护线程的作用是在后台提供支持服务,而线程礼让是为了提高多线程程序的效率和公平性。

2024-03-09 14:38:17 337

原创 多线程的学习: day6 线程守护

简单来说,创建出来的线程都是用户线程,只有在启动某一个线程时,这个线程调用了setDaemon(true)这个方法(这里用户线程一般为false,想要将这个线程修改为守护线程,只需要将false改为true即可),那么这个线程就会变为守护线程。可以看到在用户线程结束之后(代码里面是“你”活了一百多岁之后),守护线程依然运行了一会,这是因为守护线程的关闭需要一点时间,所以才会在运行结果上面又跑多一会。6.1 创建一个线程代表我,并写入代表线程运行的逻辑。6.2创建一个线程代表神仙,并写入代表线程运行的逻辑。

2024-03-09 14:37:33 330

原创 多线程的学习:day6 线程优先级

6.2 创建一个main类,然后使用getPriority()方法观测主线程的运行优先级(一般都是5),然后引入实现Runnable接口的类,建立几个线程,分别设定这些线程的优先级是多少,然后分别启动这些线程。由此可以看到不同线程的优先级分别打印,但并不代表优先级高的线程一定比优先级低的线程要先执行;此外我们还能看到优先级不存-1和11,超出1-10的优先级设定就会抛出异常提醒。线程优先级:Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行。

2024-03-09 14:24:38 320

原创 多线程的学习:day6 线程的观测

线程状态的观测:我们可以根据State()方法对线程运行的状态进行观测,以下为线程不同状态的观测标识解释图。6.1 创建一个主类,除开要在主类之中引用thread类之外,还要对State()方法创造state对象。

2024-03-09 14:06:42 326

原创 多线程的学习:day6 线程的强制运行

6.2 创建一个main类(代表上述的B线程),引入那个实现Runnable接口的类的对象,启动这个类的线程,然后写一段代表main类的执行代码逻辑,规定当某个条件时run()方法开始执行(A线程)线程的强制运行:举例说明就是A线程执行了Join()方法之后,B线程不能够执行,要A线程执行完之后B线程才能执行,也就是说A线程执行的过程中,其他线程阻塞,可以理解为插队。可以看到,当i = 200就已经有子线程执行,这是CPU调度问题,但当之后就一定要确保子线程比主线程要快速执行完。

2024-03-09 13:22:10 268

原创 多线程学习:day5 线程礼让

线程的礼让:举例来就说就是有A线程和B线程要进入“房子里面‘,而A线程里面是带了”礼让方法“的,所以当A线程进入”房子“里面之后,触发礼让先不运行,而是作为就绪状态,让B线程也进入就绪状态,再让CPU去调用。由于我们的代码规定“刘”线程先被调取,所以我们看“刘”线程会不会礼让后面的“谢”线程就行,很明显我们看到,此次结果是“谢”线程先开始执行,说明礼让成功,但不一定每次都会被礼让。5.2 创建一个main类,并引入刚刚外面创建好的实现Runnable接口的类,开启线程,给线程取名。

2024-03-09 13:03:55 353

原创 多线程学习:day4 线程的停止

4.1线程停止:顾名思义就是让线程停止运行,但不要使用stop或者destroy等过时或者JDK不推荐使用的方法(简而言之就是不使用);建议线程正常停止—————>利用次数暂停,不建议是死循环;建议用标志位flag————>设置一个布尔变量flag去达到让线程停止的效果。4.1.4创建一个主类(主线程),并在主线程里面启动子线程,然后在主线程中添加逻辑执行体,代表主线程的运行,其中加入让主线程暂停运行的方法。4.1.3在子线程里面添加带有标志位逻辑的执行体代码,代表子线程的运行。

2024-03-07 18:11:26 322

原创 多线程学习:day2 关于Runnable接口实现多线程的简单案例实现

3.在子线程(run方法的执行体)之中写一个判断比赛是否为已经结束并且打印胜利者和胜利者步数的逻辑,此处Thread.currentThread().getName()方法的解释与上同。System.out.println(Thread.currentThread().getName() + "-->跑了" +i + "步");System.out.println(Thread.currentThread().getName() + "-->跑了" +i + "步");//判断是否有胜利者。

2024-03-06 21:15:08 726 1

原创 多线程学习:day3 静态代理模式

静态代理注意:真实对象和代理对象都要实现同一接口(意思是你直接创建的接口,真实和代理都要实现接口),代理对象里面必须要有真实角色(要“面向接口编程”,有target变量在“代理实现接口类之中”。很明显的结果就是每次第一次执行都是主类先执行,然后执行”代理角色”帮忙的动作,由此我们可以知道,静态代理可以让“真实角色”被解放出来,可以很多,同时代码的编写也是“面向接口编程”,简化不少。new Thread(() -> System.out.println("我爱你")).start();

2024-03-06 20:57:04 831 1

原创 多线程的学习 :day2 Runnable接口

基于上一篇Thread类的学习我们知道,因为不能避免OOP单继承局限性,Thread类存在缺陷,如此我们开始学习Runnable接口,在实现多线程的同时,还避免单继承局限性,灵活方便,方便同一个对象被多个线程使用。2.2 创建一个主类,在主类里面创建实现Runnble接口的对象,并创建线程对象,通过线程对象来开启我们的子线程,同时我们在主类里面也写一个循环打印,代表主线程运行逻辑。2.1 创建一个类实现接口Runnable,并创造出run()方法,在run方法体里面写一个循环打印,代表子线程运行逻辑。

2024-03-06 17:11:44 359 1

原创 多线程学习:day1 Thread类实现

由于我们在下载器里面定义了一个下载方法,里面有两个参数url和name,所以我们要在“liuhaobin”类里面设置参数名和构造。通俗点来说,Thread是一个能让我们开启另外线程的一个类,继承它就可以开启成功,要不我们就只有一个main类主线程。看似是“多线程”,其实是由cpu(调度器)去决定进程里面每个线程的运行,所以每一次运行的结果都有可能不一样的。首先我们要先把下载器搞出来,然后用上我们在下载器里面设置好的方法,最后打印一下代表完成。我们有三个实现多线程运行程序的方法,但最后一个很少用到。

2024-03-06 16:46:24 814 1

原创 python的web全家桶笔记1(前端+数据库+Django)

520 泰哥尔 21 520 泰哥尔 21 13 吴颜祖 19 14 周杰轮 20 13 吴颜祖 19

2023-11-12 21:01:02 135

原创 文件编码与json数据(涉及到以后配合爬虫、前端等框架的内容,挺重要的基础)

语法2:f=open("创建在当前目录的html文件","你想使用的打开文件的方法",encoding='UTF-8')语法1:f=open("你所创建的文件的路径","你想使用的打开文件的方法",encoding='UTF-8')w方法:如果原本文件有内容则会将原有内容刷新,从头开始写入,且如果没有这个文件则会创建一个以你命名的名字的新文件。r方法:打开文件并开始读取,无法将文件原有的内容刷新,且如果没有这个文件则会创建一个以你命名的名字的新文件。2、你想使用的打开文件的方法:w、r、a。

2023-11-12 17:27:43 42

原创 Python:database的所有语法以及各自的方法

特殊:字典不像列表、元组、字符串那样支持重复、有序的元素,所以字典和集合一样不支持下标索引,它通过key:value的语法和现实里面的字:含义一样,所以这个有很大用途,可以通过key来找到对应的东西。特殊:字符串和元组一样,一旦里面的元素确定了就不能更改,所有对元素进行操作的方法,也只是创造一个新的字符串,旧的字符串还是存在的。1、replace方法:可以将一个新的元素替换旧的字符串中的一个元素,但替换方法只是创造了一个新的字符串,旧的字符串还存在,

2023-11-12 12:38:20 273 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除