java中的线程是个什么具体的内容?
发布网友
发布时间:2022-04-26 04:26
我来回答
共3个回答
热心网友
时间:2022-06-20 18:49
这么说吧,电脑系统里有一个任务管理器,任务管理器中有许多进程,一个进程的下面又有很多线程。就是这个意思啊。
例如JAVA的main方法就是一个主线程,程序的执行顺序是自上而下的,如果这个程序没有在这个主线程上创建一个新的线程的话,程序就自上而下的执行,直到程序执行完闭。
如果你在这个主线程上,也就是main方法里创建了一个新的线程,那么这个时候就有两个线程,新的线程开始执行,这个时候主线程并不是停止了,而是一样的继续自上而下的执行,这个时候就有两条线程在执行代码了。
比如有一辆大卡车,遇到到了一个叉路口,这时大卡车就相当于主线程,这个时候只通往一条道路了,如果在叉路口上大卡车里出来了一辆小车,这个时候小车和大卡车分别向两条路上行驶,而并非大卡车会停下来,这个时候的状态就是两个线程在同时运行。
虽说这个比喻不是很好,但很形象!
说白了,我们以前写的那些简单的程序就只有一个线程,就是主线程(main方法),不管有多少判断,循环,它都是自上而下的执行,如果创建了另一个新的线程,这个时候就有两条线同时执行各自的任务了
热心网友
时间:2022-06-20 18:49
在计算机中当一个程序运行的时候就会创建至少一个进程,例如当我们运行QQ的时候,系统就会创建进程来处理我们平时的一些操作,当我们打开任务管理器的时候,在进程的列表里面就可以找到QQ.exe的运行程序;
在计算机中处理进程之外还有另一个概念就是线程,线程是存在于进程当中,一个进程可以包含多个线程;当我们的计算机有多核处理器的时候,使用多线程可以加快程序的运算速率;如果一个进程中只有一个线程,当程序遇到一个比较耗时的计算的时候,由于程序是单线程的,那么程序只能等待这个运算结束的时候再继续运行,这样会大大的降低程序的效率;当时用多个线程的时候,在某个线程遇到比较耗时的运算的时候,该线程可以继续自己的运算,但是其他的线程也可以同步进行,这样当耗时的计算结束之后,其他线程也将自己所需要的东西执行完毕,这样就会很大的提高程序执行效率;
在程序运行中对于文件的保存相对于处理器的运算速度来说是很慢的,当我们程序中接收到一个保存文件的信息之后,我们可以创建一个保存文件的线程,在主线程中我们可以继续进行我们的其他运算,这样当文件保存好之后,我们的其他运算也会完成,互不影响;
在Java中我们可以创建一个自己的类继承于Thread类,并且重写run() 方法,当线程启动之后,run()方法里面的操作都在线程中进行处理,而不会影响主线程的信息;
当我们创建好一个自定义线程类之后,我们可以创建这个自定义线程的对象,进行线程的启动;线程须调用start();方法进行启动,这样run()方法里面的内容才会在线程中运行;如果我们不去调用start()方法,那我们只是创建了一个普通的类,即使我们手动调用run()方法,run()方法里面的内容也不会在线程中运行;
在Java中线程主要有初始状态,运行状态,阻塞状态,终止状态等;当我们新创建一个线程对象的时候,此时线程的状态为初始状态;当我们调用start()之后,此时的线程才被激活成为运行状态,之后run()方法里面的信息才会在子线程中运行;我们可以在不同的阶段调用不同的方法将线程设置为不同的状态;比如有时候我们的操作需要等待其他线程中运算结束之后才可以继续进行,这时候我们就可以将线程设置为等待状态,当需要的资源满足条件之后,可以继续运行当前的线程;
热心网友
时间:2022-06-20 18:50
线程是语言无关的(具体的研究下操作系统)
简单来说就是程序中的另一个分支
一般一个应用中有UI线程和后台线程
后台线程执行耗时操作
多线程可以提高程序的执行效率
但得考虑线程同步问题