java 多线程是什么?

java多线程是什么?,能用来干嘛?我对线程没什么概念,能帮忙给个最简单的例子解释下吗?最好能给写个main方法我执行下,自己理解一下!... java 多线程是什么?,能用来干嘛?我对线程没什么概念,能帮忙给个最简单的例子解释下吗?
最好能给写个main方法我执行下,自己理解一下!
展开
 我来答
qyi8
2010-12-17 · TA获得超过211个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:191万
展开全部
因为如果你在一个线程中进行耗时的操作时,那么其他的事情就不能做了,可能出现假死等状态,
如果要避免这种情况只能用多线程的。

public class Test extends Thread{

/**
* @param args
*/
public static void main(String[] args) {
//创建4个线程
new Test().start();
new Test().start();
new Test().start();
new Test().start();

}

@Override
public void run() {
System.out.println("");
super.run();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
依谨云红
2020-03-18 · TA获得超过3885个赞
知道大有可为答主
回答量:3199
采纳率:26%
帮助的人:244万
展开全部
java语言已经内置了多线程支持,所有实现runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6f9155e
2018-09-28 · 超过25用户采纳过TA的回答
知道答主
回答量:123
采纳率:0%
帮助的人:46.9万
展开全部

java 线程理解    这篇有你想知道的大部分知识

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
妤霸L5d21
2020-11-19 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:11.1万
展开全部
这里先不讲juc包里的多线程类。juc相关内容会在Java并发专题讲解。
1. 线程的实现可以通过继承Thread类和实现Runable接口 也可以使用线程池。callable配合future可以实现线程中的数据获取。
2. Java中的线程有7种状态,new runable running blocked waiting timewaiting terminate
blocked是线程等待其他线程锁释放。 waiting是wait以后线程无限等待其他线程使用notify唤醒 timewating是有限时间地等待被唤醒,也可能是sleep固定时间。
3. Thread的join是实例方法,比如a.join(b),则说明a线程要等b线程运行完才会运行。
4. o.wait方法会让持有该对象o的线程释放锁并且进入阻塞状态,notify则是持有o锁对象的线程通知其他等待锁的线程获取锁。notify方法并不会释放锁。注意这两个方法都只能在synchronized同步方法或同步块里使用。
5. synchronized方法底层使用系统调用的mutex锁,开销较大,jvm会为每个锁对象维护一个等待队列,让等待该对象锁的线程在这个队列中等待。当线程获取不到锁时则让线程阻塞,而其他检查notify以后则会通知任意一个线程,所以这个锁时非公平锁。
6. Thread.sleep(),Thread.interrupt()等方法都是类方法,表示当前调用该方法的线程的操作。
一个线程实例连续start两次会抛异常,这是因为线程start后会设置标识,如果再次start则判断为错误。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宾碧萱的老巢
2020-11-19 · TA获得超过665个赞
知道小有建树答主
回答量:650
采纳率:100%
帮助的人:12.2万
展开全部
1. 线程的实现可以通过继承Thread类和实现Runable接口 也可以使用线程池。callable配合future可以实现线程中的数据获取。
2. Java中的线程有7种状态,new runable running blocked waiting timewaiting terminate
blocked是线程等待其他线程锁释放。 waiting是wait以后线程无限等待其他线程使用notify唤醒 timewating是有限时间地等待被唤醒,也可能是sleep固定时间。
3. Thread的join是实例方法,比如a.join(b),则说明a线程要等b线程运行完才会运行。
4. o.wait方法会让持有该对象o的线程释放锁并且进入阻塞状态,notify则是持有o锁对象的线程通知其他等待锁的线程获取锁。notify方法并不会释放锁。注意这两个方法都只能在synchronized同步方法或同步块里使用。
5. synchronized方法底层使用系统调用的mutex锁,开销较大,jvm会为每个锁对象维护一个等待队列,让等待该对象锁的线程在这个队列中等待。当线程获取不到锁时则让线程阻塞,而其他检查notify以后则会通知任意一个线程,所以这个锁时非公平锁。
6. Thread.sleep(),Thread.interrupt()等方法都是类方法,表示当前调用该方法的线程的操作。
一个线程实例连续start两次会抛异常,这是因为线程start后会设置标识,如果再次start则判断为错误。如果感兴趣可以B站搜索高淇老师的视频看看,希望对您有所帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式