java中实现多线程怎么做?线程池是什么?

BSO 2020-11-12 16:17:36 java常见问答 5574

java中关于实现多线程的方法也是有很多的,不知道你都掌握了吗?今天就来为大家介绍一下,实现多线程的具体方法,以及解析一下线程池的概念,一起来看看吧。

首先是,java中实现多线程的方法。

1.继承Thread,重写里面的run方法

2.实现runnable接口

比较推荐后者,第一,java没有单继承的限制第二,还可以隔离代码

线程池的概念如下。

要知道在计算机中任何资源的创建,包括线程,都需要消耗系统资源的。在WEB服务中,对于web服务器的响应速度必须要尽可能的快,这就容不得每次在用户提交请求按钮后,再创建线程提供服务。为了减少用户的等待时间,线程必须预先创建,放在线程池中。

线程池可以用hashtable这种数据结构来实现,看了Apach HTTP服务器的线程池的源代码,用是就是HashTable,KEY用线程对象,value用ControlRunnable,ControlRunnable是线程池中唯一能干活的线程,是它指派线程池中的线程对外提供服务。

出于安全考虑,Apach HTTP服务器的线程池它是同步的。

最后补充一下,java线程、同步与异步、线程池

1.多线程并发时,多个线程同时请求同一个资源,必然导致此资源的数据不安全,A线程修改了B线程的处理的数据,而B线程又修改了A线程处理的数理。显然这是由于全局资源造成的,有时为了解决此问题,优先考虑使用局部变量,退而求其次使用同步代码块。

出于这样的安全考虑就必须牺牲系统处理性能,加在多线程并发时资源挣夺最激烈的地方,这就实现了线程的同步机制

同步:A线程要请求某个资源,但是此资源正在被B线程使用中,因为同步机制存在,A线程请求不到,怎么办,A线程只能等待下去。

异步:A线程要请求某个资源,但是此资源正在被B线程使用中,因为没有同步机制存在,A线程仍然请求的到,A线程无需等待。

显然,同步最最安全,最保险的。而异步不安全,容易导致死锁,这样一个线程死掉就会导致整个进程崩溃,但没有同步机制的存在,性能会有所提升。

以上就是关于java中实现多线程怎么做以及线程池是什么的主要内容了。具体的知识还是比较好理解的。想要了解更多java常见问题,敬请关注奇Q工具网。

推荐阅读:

java多线程有哪些优缺点?详细解析

java多线程同步集合是什么?并发集合是什么?

java多线程什么时候必须同步?如何同步?