ICode9

精准搜索请尝试: 精确搜索
  • 【总结】JavaIO2021-09-21 21:00:45

    IO 背景 操作系统的核心资源(CPU、 内存、网络、I0、 驱动)均由内核进行管理,为了避免用户直接操作内核,保证内核的安全,操作系统将内存寻址空间划分为两部分:内核空间、用户空间。 针对I/O操作,以读取为例来说,数据需要由磁盘拷贝到内核缓冲区,再由内核缓冲区拷贝到用户缓冲区。这

  • FreeRTOS事件标志组2021-09-21 10:06:02

    typedef TickType_t EventBits_t; xEventGroupCreate()//创建事件标志组 xEventGroupClearBits()//Clear bits within an event group 清除事件标志位 xEventGroupSetBits()//置位事件标志位将解除正在等待标志位任务的阻塞, xEventGroupGetBits()//返回事件标志位的值 xEvent

  • 僵尸和孤儿进程2021-09-20 23:33:39

    孤儿进程,父进程先于子进程结束, 则子进程成为孤儿进程,子进程的父进程成为init进程,称为init进程领养孤儿进程 僵尸进程 进程终止,父进程尚未回收,子进程残留资源(pcb)存放于内核中,变成僵尸(Zombie)进程,   回收子进程 wait 1.阻塞等待子进程退出 2.回收子进程残留资源 3.获取子进程结束状

  • 常见的IO模型?2021-09-20 09:33:31

    前言 I/O 一直是很多小伙伴难以理解的一个知识点,这篇文章我会将我所理解的 I/O 讲给你听,希望可以对你有所帮助。 I/O 何为 I/O? I/O(Input/Outpu) 即输入/输出 。 我们先从计算机结构的角度来解读一下 I/O。 根据冯.诺依曼结构,计算机结构分为 5 大部分:运算器、控制器、存储器、输入设

  • 【FreeRTOS】FreeRTOS学习笔记(14)— FreeRTOS的消息队列(原生API)2021-09-19 20:34:30

    摘要:在裸机中我们使用全局变量来传递信息,在操作系统中,使用全局变量传递消息可能会不安全,容易被修改。于是就是用队列来传递消息。队列就是一个数据结构,用于任务间的数据的传递。 一、消息队列的基本概念 队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任

  • Linux-高级IO2021-09-19 11:02:44

    文章目录 1. 高级IO1.1 IO模型1.2 阻塞IO1.3 非阻塞IO1.4 信号驱动IO1.5 多路转接IO1.6 异步IO 1. 高级IO 1.1 IO模型   IO操作包括了等待和拷贝,实际中等待所消耗的时间往往大于拷贝的时间,因此,为了让IO操作高效,核心的方法就是缩短等待时间。   在低阶IO中,用户通过输

  • 悲观锁与乐观锁2021-09-18 23:04:52

    悲观锁与乐观锁 1、线程安全概述 线程安全是多线程编程时,计算机程序代码中的一个概念。在拥有共享数据的多线程并行执行的程序中,线程安全的代码会通过线程同步或者乐观锁等机制保证各个线程都可以正常且正确地执行,不出现数据污染等意外情况。 2、 线程安全的实现方法 线程安

  • 使用DM数据库进行数据库阻塞、死锁现象的测试2021-09-16 23:58:32

    一、阻塞 阻塞的产生往往与事务的并发一起出现,产生的原因与锁有关。当一个事务正在占用某个资源的锁,此时另一个事务正在请求这个资源上与第一个锁相冲突的锁类型时 ,就会发生阻塞。被阻塞的事务将一直挂起,直到持有锁的事务放弃锁定的资源为止。 举个例子:事务1对TABLE1执行写操作(I

  • 并发操作之——BlockingQueue2021-09-16 20:00:27

    并发操作 并发操作之——BlockingQueue. 并发操作之——BlockingQueue 并发操作一、编程里面解决生产消费者模型的几种方式1、wait() / notify()方法2、await() / signal()方法3、Semaphore信号量4、BlockingQueue阻塞队列 二、BlockingQueue和常见的阻塞队列BlockingQueu

  • @Scheduled执行阻塞解决办法2021-09-16 10:01:09

    问题还原: 写了多了定时任务,但是部分任务一直不执行, 想起来多个函数上使用了@Scheduled,该定时任务默认使用单线程,从而导致了线程阻塞。 解决办法:    方案一:使用@Async注解实现异步任务          @Async     @Scheduled(cron="0 0/10 * * * ? ")   //每10分钟执行一次

  • 深入浅出的多线程2021-09-15 21:58:26

    1.悲观锁与乐观锁:悲观的锁就是想到最坏情况,每次去拿数据的时候都会认为该数据会被修改,所以每次拿数据时都会进行阻塞直到其拿到锁,一个线程在使用时其他进入的线程进行阻塞,直到用完后再把资源转让。synchronized和reentrantlock等独占锁都是悲观锁思想。     乐观锁假设最好的

  • linux驱动 阻塞和非阻塞IO 篇二2021-09-13 23:57:50

    @上一篇介绍了linux阻塞与非阻塞的基本概念,以及应用程序的小demo和kernel层对应的api函数。那接下来就以实例来分析,如何在linux驱动层添加等待队列和轮询的方法,以及区别。 ** 一:简介 ** 在linux驱动中,存在很常见的两种设备访问模式,所以在编写驱动的时候,一定要考虑到阻塞和非

  • Java 多线程 - 线程池常用的阻塞队列有哪些2021-09-13 15:04:01

    一、线程池对应的阻塞队列       LinkedBlockingQueue 第一种阻塞队列是 LinkedBlockingQueue,它的容量是 Integer.MAX_VALUE,为 231 -1 ,是一个非常大的值,可以认为是无界队列。 FixedThreadPool 和 SingleThreadExecutor 线程池的线程数是固定的,所以没有办法增加特别多的线程来

  • Unix 网络IO模型介绍2021-09-12 14:05:37

    带着问题阅读 1、什么是同步异步、阻塞非阻塞 2、有几种IO模型,不同模型之间有什么区别 3、不同IO模型的应用场景都是什么 同步和异步、阻塞和非阻塞 同步和异步 广义上讲同步异步描述的是事件中发送方和接收方之间的关系。 当发送方必须依赖接收方的响应结果(无论正确与否)才

  • 109_多线程_另一种同步条件变量+互斥锁【这里可以完成同步,但是注意:线程的执行顺序是同时进行的,所以对其中个别操作添加延时,以让部分步骤充分响应】【条件变量的broadcast、wait】2021-09-11 18:34:52

    动图–一个在打印里去掉了延时: 解析–提前看一下 两个线程的锁、解锁等操作,是同时进行的 进入线程, 1、 2开始抢资源 1、 1 抢到, 进入资源,那 2 就会阻塞住 然后打印"hello", 接着 1 线程开始解锁, /2 线程同步的会进入资源,上锁开始执行操作 2 线程会迅速的进入资源,并且上

  • APUE 第14章 高级I/O2021-09-11 15:34:27

    I/O 分为阻塞和非阻塞,阻塞就是我要一个东西,然后得不到就在那等,非阻塞就是,我要一个东西,对方立马返回结果说没有,那我就继续做其他的事,要设置非阻塞,方法有: 1.open需要指定O_NONBLOCK 2. set_fl指定文件状态标志为O_NONBLOCK 标准输出是普通文件或者终端STDOUT,STDERR,那么结果可能

  • Java IO模型2021-09-11 13:01:19

    Java IO读写原理 内存是存储和CPU打交道的数据,在Linux上内存主要分为两部分(内核部分和用户部分)。 read系统调用,并不是把数据直接从物理设备,读数据到内存。write系统调用,也不是直接把数据,写入到物理设备。 read系统调用,是把数据从内核缓冲区复制到进程缓冲区;而write系统调用,是

  • Redis之高并发2021-09-11 09:00:50

    目录Redis 处理高并发1 阻塞IO与非阻塞IO2 Redis的线程模型 Redis 处理高并发 1 阻塞IO与非阻塞IO Java在JDK1.4中引用NIO,阻塞IO与非阻塞IO的区别 在阻塞模式下,如果从数据流中读取不到指定大小的数据两,IO 就会阻塞。比如已知会有 10 个字节发送过来,但是目前只收到 4 个,还剩六个,

  • 5种网络IO模型:阻塞IO、非阻塞IO、异步IO、多路复用IO、信号驱动IO2021-09-10 18:31:47

    目录 前言 阻塞IO(blocking IO) 非阻塞IO(non-blocking IO) 多路复用IO(IO multiplexing) 异步IO(Asynchronous I/O) 模型间的区别和比较(信号驱动IO) 前言 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人

  • 生产消费_lock和阻塞队列2021-09-10 11:00:26

    lock 这里的lock只需要一把锁 因为同时还要配合状态 一起决定 一定要在try里面用 一定要unlock public class Test { public static void main(String[] args) { //传统版本 AirConditional airConditional = new AirConditional(); new Thread(()-

  • 阻塞队列2021-09-10 09:35:19

    和队列的offer和poll不同 阻塞队列是put和take 停摆之前操作 只能在take之前去操作 不然就完蛋 如果第二个take写在新线程之前,自己的两个打印都会卡住 class XXX{ static BlockingQueue<Integer> blockingQueue = new ArrayBlockingQueue<Integer>(3); public static void

  • 线程方法sleep(),yield(),join()2021-09-09 16:35:54

    1. 线程休眠sleep() (1)sleep(时间)指当前线程阻塞的毫秒数; (2)sleep存在异常InterruptedException; (3)sleep时间达到后线程进入就绪状态; (4)sleep可以模拟延时,倒计时等; (5)每一个对象都有一个锁,sleep不会释放锁;   2.线程礼让 yield()  礼让不一定成功,主要看CPU分配;   3.线程强制执行 join

  • 多线程同步、异步,阻塞、非阻塞,并行、并发等基本概念2021-09-09 08:34:04

    ------------恢复内容开始------------ 同步:一群对象们在一家奶茶店里排队下单,当轮到一个对象下单,店家接单,做好奶茶,然后交给对象,对象拿到奶茶走了,下一个对象开始下单,如此排队,为同步; 异步:一群对象们在一家奶茶店里排队下单,下单完成后,对象们各做个的,店家做奶茶不按下单顺序,而是随机

  • 关于线上常用的几种线程池配置2021-09-08 23:03:13

    线程池可以帮助我们省去创建、回收线程所带来的资源消耗,这也是目前使用线程池的主要原因: 下面我根据线上业务依次分析常见的几种线程池并给出个人理解: SingleThreadPool:无界队列,核心线程、最大线程都为 1 特点:只有一个线程,阻塞队列使用 LinkedBlockingQueue,链表无界。优点在

  • OS篇:OS中进程的阻塞与挂起的区别2021-09-08 20:32:36

    一、阻塞 VS 挂起   阻塞与挂起都是进程的状态,但他们有一些相似之处,也有一些区别,下面先对他们进行概述,再进行比较   阻塞:正在执行的进程由于发生某时间(如I/O请求、申请缓冲区失败等)暂时无法继续执行。此时引起进程调度,OS把处理机分配给另一个就绪进程,而让受阻进程处于暂停状

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有