- 博客(12)
- 收藏
- 关注
原创 线程池简单介绍
最开始引入线程,是为了解决频繁创建和销毁进程产生的资源开销太大这个问题。创建和销毁线程的开销远小于创建和销毁进程的开销。但是当线程创建销毁的频率进一步提高后,这时线程的开销也就比较大了,也是需要解决的问题。有道之“抛开剂量谈毒性都是耍流氓”,虽然单个线程创建和销毁的开销小,但是架不住“量大”。引入线程池,就是将创建好的线程放到线程池中,使用线程的时候从线程池中取,不使用线程的时候,把这个线程还给线程池。线程池提前创建好了线程,使用完的线程也不立即释放,而是放到线程池中。
2024-05-12 00:24:53
942
原创 定时器,Timer,java
有的时候我们需要设定一个时间,当到了设定时间的时候让定时器自动去执行某个逻辑,比如qq空间发说说有一个功能就是定时发送。Java标准库中提供了定时器的实现,就是java.util.Timer这个类。
2024-04-28 21:36:07
977
3
原创 生产者-消费者模式
我们可以在生产者和消费者之间加一个阻塞队列(也可以是用阻塞队列实现的程序,或者是部署了阻塞队列的服务器),让生产者和消费者通过队列来进行通信,消费者把请求发送到队列里,消费者从队列中拿生产者发送的数据,生产者从队列中获取请求,把返回的响应发送到队列里。有的时候生产者生产数据的速度远远大于消费者取数据的速度,那么队列满的时候,生产者就进入阻塞状态,生产不了数据,等消费者取数据的时候才能从阻塞状态解除,继续去生产数据。在队列空的时候,出队列操作对进入阻塞,等队列不空的时候再解除阻塞,继续出队列。
2024-04-21 21:55:21
949
3
原创 单例模式,饿汉模式,懒汉模式
单例模式只允许类创建唯一实例,提供一个public方法供外部获取唯一实例。这个多个进程操作的就是同一个实例了,能够共享数据,互不影响(实现线程安全之后)。
2024-04-19 21:53:51
689
2
原创 java中的文件IO
通常我们所说的文件是指存储在计算机硬盘或其他存储介质上的数据单元,这些数据单元可能包含文本、图像、音频、视频等各种形式的信息。这些文件通常被分为两类:文本文件和二进制文件。文本文件:文本文件是由字符组成的文件,每个字符都可以在对应的字符编码表中找到对应的表示。常见的文本文件格式包括 .txt(纯文本文件)、.csv(逗号分隔值文件)、.html(网页文件)等。这些文件可以使用文本编辑器(如记事本)打开并查看内容,通常不会出现乱码。二进制文件。
2024-04-13 21:35:11
937
2
原创 java多线程编程基础
java多线程编程,顾名思义就是用java语言在多线程环境下编程。没有学习多线程之前,我们的编程都是单线程编程。多线程编程,比单线程编程多了更多的细节。处理不好就很容易出bug。下面让我们来介绍相关的概念,以及如何减少在多线程的环境下编程出bug。
2024-04-04 22:55:38
639
2
原创 简单介绍进程和线程(java)
在多任务操作系统中,需要运行多个程序,就需要实现并发编程。进程可以很好的解决并发编程这个问题。有的操作系统只有进程这个概念。但是有些情况下,进程就不是那么好用了。在早期的网站就是基于多进程进行编程的。网站是浏览器-服务器结构。用户通过浏览器,向服务器发送请求,服务器接收请求,并返回响应。如果同一时刻一个用户向服务器发送请求,服务器接收请求时会创建一个新的进程,返回响应后,会销毁这个进程。如果同一时刻,有多个用户向服务器发送请求,那么服务器就要不断的创建和销毁,这对于系统的开销是比较大的。
2024-03-27 23:34:18
505
1
原创 【C】剖析数据在内存中的存储
情境引入:先来看看下面的代码,你们觉得运行的结果会是怎么样呢?我还没学数据存储的时候,我认为的答案是5 , 5.0, 5.0 ,5 , 5.0但答案实际上是:是不是很纳闷为什么是这个结果?接下来就给你解密原理。
2023-05-12 00:34:10
96
2
原创 用pyinstaller打包文件中遇到的那些坑
一、pip:无法将"pip"项识别为cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
2022-06-05 16:51:36
1306
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人