有关线程的一些小记录

简介: 有关线程的一些小记录

有关线程的一些小记录

使用继承Thread的方式使用线程的话,不能共享资源,实现Runnable的方式,可以实现资源共享。

工作中尽量使用线程池的方式进行线程的创建。

使用线程池可以防止线程无限制的扩张导致服务宕机,另外节省了线程的创建、销毁的时间成本。要知道,对于衡量一个程序的好坏,时间长短是很重要的指标,稍微规模大一点的公司,接口耗时不达标是不行的。

//申请线程工厂,为线程命名
 ThreadFactory threadFactory = new ThreadFactoryBuilder().setNameFormat("thread-methsName-call-runner-%d").build();
 //创建线程池
 ExecutorService excutor = new ThreadPoolExecutor(3, 5, 0L,TimeUnit.SECONDS, new ArrayB
相关文章
|
7月前
|
缓存 数据库
并发修改同一记录时需要加锁
并发修改同一记录时需要加锁
|
3月前
|
Java API 调度
线程的操作
本文详细介绍了线程的开启、终止、等待和休眠。首先解释了`start`与`run`的区别:`start`用于真正创建线程并调用系统API,而`run`则是线程执行的具体任务。接着讨论了线程终止的两种方式:通过共享标记和调用`interrupt()`方法。文中还分析了使用`join()`方法实现线程等待的机制,并展示了如何通过`Thread.sleep()`让线程休眠以降低CPU占用率。这些内容通过实例代码和图示进行了清晰说明。
31 0
线程的操作
|
3月前
锁记录
锁记录
136 72
|
4月前
|
安全 C++
利用信号量实现线程顺序执行
【8月更文挑战第25天】信号量是多线程编程中用于控制共享资源访问的关键同步机制,能有效保证线程按预设顺序执行。实现方法包括:引入相关头文件(如 C++ 中的 `<semaphore.h>`),创建信号量并通过 `sem_init` 设置初始值;在各线程函数中运用 `sem_post` 与 `sem_wait` 来传递执行权;最后,通过 `sem_destroy` 销毁信号量以释放资源。使用过程中需注意错误处理、确保线程安全及合理设定信号量初值,以维持程序稳定性和高效性。
|
7月前
|
Java
【Java】有 A、B、C 三个线程,如何保证三个线程同时执行?在并发情况下,如何保证三个线程依次执行?如何保证三个线程有序交错执行?
【Java】有 A、B、C 三个线程,如何保证三个线程同时执行?在并发情况下,如何保证三个线程依次执行?如何保证三个线程有序交错执行?
79 0
|
调度
线程的状态及阻塞
之前提到了线程和进程,那就提一下线程的状态吧!
241 0
|
缓存 Java
线程池是如何重复利用空闲线程的?
在Java开发中,经常需要创建线程去执行一些任务,实现起来也非常方便,但如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。此时,我们很自然会想到使用线程池来解决这个问题。
271 0
|
网络协议
并发服务器三种实现方式之进程、线程和select
这篇主要介绍如何实现并发服务器,主要通过三种方式:进程、线程和select函数来分别实现。
1860 0
用远线程实现文件自删除
点这里下载示例代码 实现文件自删除不是一个特别新的话题了,不过貌似一直没有特别完美的解决方式。从早先Gary Nebbett的堆栈溢出版本到后来的批处理、临时文件等方式,无不存在着各样瑕疵:如堆栈溢出不支持XP,临时文件(批处理)不够优雅等等。
947 0