前段时间看了下flask的源码,对于这样一个轻量级的web框架是怎样支持多线程的感到非常好奇,于是深入了解了一番。 flask是依赖werkeug来实现线程间的隔离的,而werkeug最后又使用到了python的内置模块locals来承载数据,看不如写,于是自己实现了一下。 from threadi ...
分类:
编程语言 时间:
2020-07-21 10:05:09
阅读次数:
87
为什么用线程池 1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处理效率 例如: 记创建线程消耗时间T1,执行任务消耗时间T2,销毁线程消耗时间T3 如果T1+T3>T2,那么是不是说开启一个线程来执行这个任务太不划算了! 正好,线程池缓存线程,可用已有的闲置线程来执行新 ...
分类:
编程语言 时间:
2020-07-21 09:58:27
阅读次数:
69
复习: 进制转换: 十进制转二进制:求余,直到商为0,过种的余数就是二进制(逆序)。 二进制转十进制:2^(n-1) 二进制转八进制:三位二进制对应一位八进制 二进制转十六进制:四位二进制对应一位十六进制,超过10用ABCDEF表示 代码中0开头的是八进制数据,0x开头的是十六进制数据 printf ...
分类:
编程语言 时间:
2020-07-21 09:38:55
阅读次数:
65
public class Demo02 { public static void main(String[] args) {第一种方法: new Thread("构造方法设置线程名字"){ public void run(){ System.out.println(this.getName()+". ...
分类:
编程语言 时间:
2020-07-21 01:18:57
阅读次数:
67
public class Demo02 { public static void main(String[] args) { Test01(); new Thread(){ public void run(){ System.out.println(getName()+".......ccccccc ...
分类:
编程语言 时间:
2020-07-21 00:58:31
阅读次数:
56
参考:https://www.liaoxuefeng.com/wiki/1016959663602400/1017630786314240#0 ####ThreadLocal ThreadLocal变量虽然是全局变量,但每个线程都只能读写自己线程的独立副本,互不干扰。ThreadLocal解决了参数 ...
分类:
编程语言 时间:
2020-07-20 15:32:24
阅读次数:
79
Java高级工程师需要弄明白的20个知识点 1、对多线程的了解,尤其是对线程池的理解,对ThreadPoolExecutor构造参数各个作用的理解、了解Fxied Pool、Cached Pool分别的作用 2、对锁的了解,synchronized、Lock接口(及其对应的实现的理解) 3、对JDK ...
分类:
编程语言 时间:
2020-07-20 10:22:43
阅读次数:
69
一、Java 线程实现/创建方式 注意: ? 新建的线程不会自动开始运行,必须通过start( )方法启动 ? 不能直接调用run()来启动线程,这样run()将作为一个普通方法立即执行,执行完毕前其他线程无法并发执行 ? Java程序启动时,会立刻创建主线程,main就是在这个线程上运行。当不再产 ...
分类:
编程语言 时间:
2020-07-20 10:21:52
阅读次数:
74
概述 ThreadLocal提供了一种线程安全的数据访问方式,每个线程中都存在一个共享变量副本,从而实现多线程状态下的线程安全。 demo public static void main(String[] args) { final ThreadLocal<Integer> MAIN = Threa ...
分类:
其他好文 时间:
2020-07-19 23:56:13
阅读次数:
81
一、前言 闭锁与栅栏是在多线程编程中的概念,因为在多线程中,我们不能控制线程的执行状态,所以给线程加锁,让其按照我们的想法有秩序的执行。 闭锁 CountDownLatch,实例化时需要传入一个int类型的数字(count),意为等待count个线程完成之后才能执行下一步动作。 如今天要做的事情是吃 ...
分类:
编程语言 时间:
2020-07-19 23:47:16
阅读次数:
80