1、多线程概述 2、启动线程的方式 3、线程生命周期 4、线程的一些方法 5、线程调度 6、线程的同步和异步 7、synchronized 8、死锁 多线程概述 概述 1、什么是进程? 进程是一个应用程序(1个进程是一个软件)。 2、什么是线程? 线程是一个进程中的执行场景/执行单元。 3、一个进程 ...
分类:
编程语言 时间:
2020-06-07 09:15:35
阅读次数:
56
运行时数据区 class文件使用类加载子系统进行加载,经过加载、链接、初始化三个过程后进入方法区。接下来需要使用执行引擎进行执行并依赖于运行时数据区 如图所示,相同灰色为线程私有,绿色为多个线程共享的 线程是一个程序里的运行单元,jvm允许一个应用有多个线程并行执行,即多线程思想。每个线程独立包括程 ...
分类:
其他好文 时间:
2020-06-04 13:59:13
阅读次数:
85
一、JVM体系结构: 类装载器ClassLoader:用来装载.class文件 执行引擎:执行字节码,或者执行本地方法 运行时数据区:方法区、堆、Java栈、程序计数器、本地方法栈 JVM把描述类数据的字节码.Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用 ...
分类:
其他好文 时间:
2020-06-01 11:48:58
阅读次数:
50
一、Thread类 1.1 该如何创建线程呢? 通过API中搜索,查到Thread类。通过阅读Thread类中的描述。Thread是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程。 1.2 继续阅读,发现创建新执行线程有两种方法。 1)一种方法是将类声明为 Thread 的子类 ...
分类:
编程语言 时间:
2020-05-31 19:48:24
阅读次数:
64
JVM分区 线程共享区:方法区,堆 方法区 用于存储已经被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码缓存等数据。 方法区!=永久代,只是在永久代这个概念还存在的时候,为了方法区能像堆一样进行分代收集,将方法区采用永久代实现。永久代的概念被抛弃后(JDK8),方法区采用元空间来实现(M ...
分类:
其他好文 时间:
2020-05-31 16:27:44
阅读次数:
67
本题的关键是从可选择方法中选择哪一类最优化 答案是结束时间最早的一类 源代码 #include<iostream>#include<algorithm>#include<cstdio>#define maxn 100100using namespace std;struct w{ int endd, ...
分类:
其他好文 时间:
2020-05-29 13:27:58
阅读次数:
55
yield的语法规则是: 在yield这里暂停函数执行,并返回yield后面表达式的值(默认为None),直到被next()再次调用时,从上次暂停的yield代码处继续往下执行。当没有可继续next()时,抛出异常,该异常可被for循环处理。 def fib(n): a, b = 0, 1 i = ...
分类:
编程语言 时间:
2020-05-27 20:57:30
阅读次数:
96
static关键字详解: static修饰方法 叫做 静态方法 static修饰的属性 叫做静态属性 static属于类,是公家的, 它在静态方法区中只有一份,每个对象共享类中的static,线程会用到. 我们可以通过类名调用static修饰的属性或方法,也可以通过对象名调用, 好处是不需要new出 ...
分类:
其他好文 时间:
2020-05-26 12:04:43
阅读次数:
51
Java中sleep和wait方法的区别: 由图可知:sleep和wait最大区别在于 a. 线程调用sleep方法,线程进入休眠状态,且会继续占有锁,不会释放 b.锁对象调用wait方法,线程进入到一个和该对象相关的等待池中,同时失去(释放)了对象的机锁。 这里以窗口售票为例: TicketDem ...
分类:
编程语言 时间:
2020-05-24 13:26:49
阅读次数:
73
Cat cat= new Cat();//new 代表创建了一个对象,cat是一个引用变量名,对象是通过引用名来操作的. cat在栈空间 , new 出来的对象 在堆空间. 方法空间 里 有 类的信息,类的属性和方法都在里头,字符串常量池..., 方法空间里还有一块静态方法区域 >static:和类 ...
分类:
其他好文 时间:
2020-05-24 13:20:02
阅读次数:
54