多线程
文章平均质量分 70
千千之中
冥冥之中自有天意
展开
-
JAVA无法创建虚拟机?Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred.
我百度了一下有两种意思:1. 大概是说我们的JAVA没有创建虚拟机2. JAVA的栈内存不足以运行JVM1.我先尝试了在IDEA的help中 改了 idea64.exe.vmoptions配置文件,但是并没有起到作用,我尝试重新启动IDEA发现打不开了,然后关系重启也没有作用,百度了半天大概是因为破解IDEA后因为插件原因导致的,没办法就重装了。2. 后面我开始尝试着去用cmd运行java和javac,发现报了这样一个错误/lib/ext exists, extensions mec.........转载 2022-06-18 20:15:28 · 33173 阅读 · 3 评论 -
JAVA-多线程同步与异步的理解
虽然说在实际工作当中,我们可能编写关于多线程的代码比较少,但是我们一定会是在一个多线程的环境下去研发,所以也就体现出了多线程的重要性,而且像大厂的面试也会经常问到,所以多线程一定是一门必修课。在多线程环境中,没有讲到synchronized之前我们的程序其实都是异步的,我们两个线程在同时作业是相互不影响的,这样效率会比较高,但线程不安全。打个比方,我们现在要进行一个取款操作,现在有t1和t2两条线程,两条线程分别对同一个账户进行取款1000元,账户余额也只有1000元代码,在我们第一条线程执行到if的时候是原创 2022-06-24 16:13:27 · 1637 阅读 · 1 评论 -
JAVA-关于多线程Thread的调度
虽然说在实际工作当中,我们可能编写关于多线程的代码比较少,但是我们一定会是在一个多线程的环境下去研发,所以也就体现出了多线程的重要性,而且像大厂的面试也会经常问到,所以多线程一定是一门必修课。1.sleep(参数为long类型,以毫秒为单位1000毫秒=1秒),当执行到此方法时会暂缓执行,例如你想让方法滞留2秒钟后运行,那也就是Thread.sleep(2000);,需要注意sleep在哪出现就会在哪个线程暂缓,sleep需要处理异常机制,在run方法中处理需要try,在主线程可以throws向上抛出。以原创 2022-06-21 20:59:39 · 363 阅读 · 0 评论 -
JAVA-多线程的生命周期
虽然说在实际工作当中,我们可能编写关于多线程的代码比较少,但是我们一定会是在一个多线程的环境下去研发,所以也就体现出了多线程的重要性,而且像大厂的面试也会经常问到,所以多线程一定是一门必修课二,状态之间的关系以及切换第一个是创建状态这意味着我们以及通过new 去创建Thread线程对象了,当程序执行到了start方法时,也就意味着创建了线程到达了就绪状态,这说明我们的线程已经准备就绪可以去抢夺CPU时间片了,在这个地方补充一下:线程有两种时间片调度方式:,java使用的是抢占式调度1.分时调度,所有原创 2022-06-19 17:48:08 · 349 阅读 · 0 评论 -
JAVA-多线程的运行原理与创建和使用1.0
首先启动Java程序会开启java虚拟机,JVM,这样也就等于打开一个应用程序也就是进程,进程会生成主线程,主线程会找某个类的main方法,也就是说main方法是运行在主线程中,当程序执行到创建线程对象的时候,我们的t变量会指向堆内存的Thread线程对象,程序执行到t.start方法时会向JVM申请开辟一块新的栈,这个时候就有了两个线程,一个主线程和一个t线程,t.start()并不会在main的栈内存进行压栈,如果main线程的栈弹空了也不会跟t线程有关系,两个栈之间是独立关系,t线程对象的方法执行会压原创 2022-06-19 01:40:53 · 461 阅读 · 0 评论 -
JAVA-多线程的基本理解
比如打开我们win10的任务管理器,我们就可以看到一个很详细的系统进程列表,比如我们在java环境下启动JVM,其实启动了一个进程,像现代的操作系统都是支持多进程的,可以打开多个的应用程序。单进程的缺点:只能做一件事,不能同时运行多个程序进行任务切换;从某种意义上来讲,我们电脑的CPU是非常的强大的,例如:我们可以同时打开网易云,打开百度,打开idea这些常用软件,你是不是以为他是在同时运行?其实并不是,对于单核CPU来说它在某个时间点只能去运行一个进程,那为什么我们的电脑后台却可以运行不止一个程序?这其原创 2022-06-17 00:47:15 · 420 阅读 · 0 评论