线程
文章平均质量分 65
线程
困得睁不开眼
引发思考是一种高水准的审美调动
展开
-
java多线程常见面试题
守护线程和用户线程用户线程就是正常意义上的线程,我们执行程序时默认的都是用户线程。守护线程是指在程序运行的后台提供的通用线程,顾名思义,守护线程就是用户线程的守护者,基本构造和用户线程是一样的,除了一点:当 jvm 关闭后守护进程才关闭。也就是说只要还存在用户线程时,守护线程就一定在。例如:将一个线程设置为守护线程的方法就是在调用start()启动线程之前调用对象的setDaemon(true)方法。守护线程的一个典型的例子就是垃圾回收器。原创 2023-07-20 17:28:30 · 181 阅读 · 0 评论 -
java 线程安全(二)synchronized
中解释了线程安全问题。原创 2023-07-19 15:59:04 · 395 阅读 · 0 评论 -
线程池学习(六)线程池状态转化
等待线程池完成关闭,在设置的时间timeout内如果线程池完成关闭,返回true, 否则返回fals。等待当前工作队列中的剩余任务全部执行完成之后,才会执行关闭。调用后、状态转为SHUTDOWN。立即关闭线程池的方法,此方法会打断正在执行的工作线程。清空当前工作队列中的剩余任务,返回的是尚未执行的任务。原创 2023-07-18 18:56:14 · 371 阅读 · 0 评论 -
线程池学习(五)线程工厂、线程池工厂
前面几期的学习中,我已经初步会使用线程池了,也已经使用了 Executors。这里介绍下 ThreadFactory 的使用。原创 2023-07-18 17:37:50 · 830 阅读 · 0 评论 -
线程池学习(四)任务调度
线程池有几个重要的属性,核心线程数,最大线程数,阻塞任务队列。原创 2023-07-18 17:00:42 · 432 阅读 · 0 评论 -
线程池学习(三)Future接口
我们借钱(提交任务)时会写一个欠条(Future 相当于一个欠条),我们可以用欠条去拿回欠款,真正还钱的是债主(执行任务的是 Executor )。原创 2023-07-18 16:11:46 · 386 阅读 · 0 评论 -
线程池学习(二)execute() 和 submit() 的区别
使用 execute 向线程池提交任务不能处理异常,未打印了task has Exception!使用 submit 向线程池提交任务可以处理异常,打印了task has Exception!原创 2023-07-17 18:31:44 · 339 阅读 · 0 评论 -
线程池学习(一)
如图:只要有新的任务,就会开辟线程。如图:最多只有3个线程同时进行。如图:最多启动3个线程执行任务。如图:周期性的执行任务。原创 2023-07-17 17:37:48 · 294 阅读 · 0 评论 -
java 线程安全问题(一)
可以使用 synchronized 关键字修饰方法,该方法被称为同步方法。在多线程环境下,同一时间只有一个线程可以执行该方法。其他线程需要等待当前线程执行完毕后才能进入该方法。例如 Java 容器 Hashtable 源码中的些方法都是用synchronized 修饰的,也就是达到了线程安全。如果发生下面情况: m = 0 时 线程A和线程B 都执行 m = m+1 但是结果还是=1.这是因为 m = m +1;的(要么都成功,要么都失败)(1)从主存中取出 m。(2)计算 m +1。原创 2023-07-12 16:54:37 · 217 阅读 · 0 评论 -
java 线程 Thread 类介绍
java 中用Thread 类用来描述线程,包含一些线程的基本信息,构造方法和 run 方法。原创 2023-07-11 18:41:55 · 265 阅读 · 0 评论 -
进程间同步互斥关系
什么是互斥关系 在很多时候,各个进程间要求共享某些资源,但是某些资源一次只允许被一个进程使用(临界资源,输入输出设备),在进程间竞争使用临界资源的这种关系,我们称为互斥关系.典型的例子就是售票系统,每一个买票的客户看作一个进程,售卖的火车票为临界资源,同一时刻只能一个人对火车票进行买票操作(票数减一),如果没有互斥关系的话,就有可能造成两个人同时进行购票,只有一张票,当A已经买到票时...原创 2018-08-06 17:52:56 · 42 阅读 · 0 评论 -
什么是进程
对于这个问题,教科书上一般都会这样解释进程是程序运行的实例,是操作系统中资源分配的基本单位这样讲感觉还是有点抽象谈论进程,我们可以认为它是一个活体,只是给出概念怕是很难形容,我们可以从进程是如何运作的,运作时都依靠哪些资源来表述进程。每个进程都拥有自己独立的地址空间,在LINUX操作系统中,每个进程在内核中都有与之对应的一个进程控制块结构(PCB)来描述进程。很明显进程的所有资源都和它PCB中的内容息息相关,那就可以看看PCB中都有哪些内容来对就进程进行展开描述。原创 2018-08-11 11:41:53 · 297 阅读 · 0 评论 -
什么是线程,进程和线程的区别是什么?
上一篇了解的什么是进程:线程在Linux系统下,从操作系统层面看,是没有线程的概念的,线程的概念是用户态提出来的进程是操作系统资源分配的最小单位,具有自己的虚拟地址空间,可以独立执行线程是进行调度的最小单位,也称为轻量级进程一个进程中包含了多个线程,每个线程共享进程的虚拟地址空间,每个线程拥有自己独立的调用栈和一组寄存器用于线程的调度线程之间没有父子关系,但有一个主线程就是mai...原创 2018-10-12 12:08:10 · 34 阅读 · 0 评论 -
初认识非阻塞IO
一个文件描述符默认都是阻塞的 需要调用 fcntl() 函数设置文件状态#include <fcntl.h>#include <unistd.h>extern int fcntl (int __fd, int __cmd, ...);cmd参数原创 2018-07-17 21:59:17 · 198 阅读 · 0 评论 -
初识五种IO模型
以下内容均为本人学习笔记,若有不当,感谢指出在网络环境下将IO分为两步,第一步为等待,第二步为数据搬迁而往往是等待的过程限制了IO的执行效率,针对这个性能瓶颈,只要我们能降低IO中等待的比重,就能提高IO效率下面讨论将针对如何降低IO中等待的比重来提高效率下面是人们为解决行IO效率提出的五种IO模型五种IO模型1.阻塞IO 在内核将数据准备好之前,系统调用会一...原创 2018-07-16 21:59:42 · 988 阅读 · 0 评论 -
select 实现多路复用
在前面讲了五种基本IO模型 例二 : 使用select检测标准输入是否就绪**先看接口如何使用 #include <sys/time.h> #include <sys/types.h> #include &amp原创 2018-07-18 21:59:58 · 3780 阅读 · 0 评论 -
读者写者之模型--同步问题
再上一篇中,介绍了生产者消费者模型[https://blog.csdn.net/Misszhoudandan/article/details/80715426] 今天介绍读者写者模型(读多写少的场景)场景描述:写者负责再资源池中写读者负责从资源池中读数据同一时间内不允许多个写者进行写,但允许多个读者进行读当写者和读者都准备占用资源池时,写者优先占用资源池(此问题描述的时写者优...原创 2018-06-17 21:59:50 · 530 阅读 · 0 评论 -
inet_aton函数、inet_ptop函数、inet_addr函数、inet_ntoa函数
上一篇讲了一个简单的网络程序,其中用到了几个地址转换函数,今天这一篇来说说这几个函数的一些用法, #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h&gt原创 2018-06-25 21:58:21 · 1254 阅读 · 0 评论 -
线程的基本概念:同步与互斥关系、什么是死锁
在前面两篇中介绍了线程的基本概念和线程控制 今天来看一下线程之间的同步和互斥关系互斥关系线程之间的互斥关系 对于一块临界资源,同一时间只能有一个线程进行访问,对于之前学习的进程间通信中讲的管道和消息队列,均内置的互斥同步机制。大部分情况下,线程使用的函数都是全局的,如果这样的话,就可能发生当一个线程正在访问一资源时,另外一个线程也来访问该资源,此时就可能发生逻辑错误。经典场...原创 2018-06-21 08:04:34 · 588 阅读 · 0 评论