引子 几乎在每一本js相关的书籍中,都会说js是单线程的,JS是通过事件队列(Event Loop)的方式来实现异步回调的。 对很多初学JS的人来说,根本搞不清楚单线程的JS为什么拥有异步的能力,所以,我试图从进程、线程的角度来解释这个问题。 CPU 说到CPU和进程、线程,对计算机操作系统有过学习 ...
分类:
编程语言 时间:
2020-12-15 12:53:08
阅读次数:
5
7 重排序与happens-before 7.1 什么是重排序? 计算机在执行程序时,为了提高性能,编译器和处理器常常会对指令做重排。 为什么指令重排序可以提高性能? 简单地说,每一个指令都会包含多个步骤,每个步骤可能使用不同的硬件。因此,流水线技术产生了,它的原理是指令1还没有执行完,就可以开始执 ...
分类:
移动开发 时间:
2020-12-14 12:47:40
阅读次数:
8
前言 平时操作集合数据,我们一般都是for或者iterator去遍历,不是很好看。java提供了Stream的概念,它可以让我们把集合数据当做一个个元素在处理,并且提供多线程模式 流的创建 流的各种数据操作 流的终止操作 流的聚合处理 并发流和CompletableFuture的配合使用 关注公众号 ...
分类:
编程语言 时间:
2020-12-11 11:59:25
阅读次数:
7
当使用VC自带的STL string append进行字符串拼接操作的时候,如下所示: // demo.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include<iostrea ...
分类:
编程语言 时间:
2020-12-11 11:45:13
阅读次数:
8
一、背景 在没有学习Java多线程以前,总觉得多线程是个很神秘的东西,只有那些大神才能驾驭,新年假期没事就来学习和了解一下Java的多线程,本篇博客我们就来从头说一下多线程到底是怎么回事。二、概述1.进程的概念 每一个正在运行的程序都是一个进程,它是系统进行资源分配和调用的独立单位。且每一个进程都有自己的内存空间和系统资源。2.线程的概念 是进程中的单个顺序控制流,是一条执行路径。每个进程都
分类:
编程语言 时间:
2020-12-10 11:03:58
阅读次数:
5
参考: https://blog.csdn.net/u014730165/article/details/84065996 https://www.jianshu.com/p/69a6ae850736 Java多线程之Future实现原理和源码分析 1、概述 从上面章节的学习,我们了解到,每个执行的 ...
分类:
其他好文 时间:
2020-12-10 10:44:02
阅读次数:
1
https://www.bilibili.com/video/BV1V4411p7EF/ 简介 程序:指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。 进程Process:执行程序的一次执行过程,它是一个动态的概念。是系统资源分配的单位。一个进程中可以包含多个线程,至少有一个线程, ...
分类:
编程语言 时间:
2020-12-09 11:44:47
阅读次数:
8
众所周知,Python中的多线程是一个假的多线程,对于多核CPU,由于受限于GIL全局解释锁,同一时刻只能有一个线程在运行。但是对于经常爬虫网络请求、下载图片等IO密集型操作,多线程变的很实用,能在一定程度上提高程序运行的效率。下面带大家从零开始学习Python多线程。1、单线程在单线程程序中可能包含多个方法,运行程序后,默认是在一个主线程里按顺序运行。importtimedefexe_time(
分类:
编程语言 时间:
2020-12-08 12:10:35
阅读次数:
6
一、线程的基本状态 各种状态一目了然,值得一提的是"blocked"这个状态:线程在Running的过程中可能会遇到阻塞(Blocked)情况 调用join()和sleep()方法,sleep()时间结束或被打断,join()中断,IO完成都会回到Runnable状态,等待JVM的调度。 调用wai ...
分类:
编程语言 时间:
2020-12-07 12:41:52
阅读次数:
9
有序性(Ordering)是指在什么情况下一个处理器上运行的一个线程所执行的 内存访问操作在另外一个处理器运行的其他线程看来是乱序的(Out of Order)。 乱序是指内存访问操作的顺序看起来发生了变化。 重排序 在多核处理器的环境下,编写的顺序结构,这种操作执行的顺序可能是没有保障的: 编译器 ...
分类:
编程语言 时间:
2020-12-07 12:40:19
阅读次数:
6