java—for循环里启动的线程要怎么理解?

packagecom.sxt.thread;publicclassStartThreadextendsThread{@Overridepublicvoidrun(){fo... package com.sxt.thread;
public class StartThread extends Thread{
@Override
public void run() {
for( int i=0; i<20; i++) {
System.out.println("一边听歌x"+i);
} }
public static void main(String[] args) {
// TODO Auto-generated method stub
for( int i=0; i<20; i++) {
StartThread st = new StartThread(); //创建子类对象
st.start();
System.out.println("一边敲代码x"+i);
} }
}

请问在这个程序中 st 的线程是否启动了20次?还是同一个st对象被创建后,在for循环里只会被start一次?
展开
 我来答
卷寄垒0gy
2020-09-03 · 超过30用户采纳过TA的回答
知道答主
回答量:254
采纳率:91%
帮助的人:35.9万
展开全部
首先类继承Thread或者实现了Runnable接口,程序就知道这是一个线程类,每次new 一个线程类,相当于创建了一个新的线程对象,使用start是启动一个线程,线程处于就绪状态,而run方法属于线程体;
如此在循环体中循环了20次,创建了20个不同的线程,每次都使用了start方法,也就是启动了20个不同的线程;
左上角有我头像,欢迎来学习交流;
思考342
2019-10-02 · TA获得超过456个赞
知道小有建树答主
回答量:888
采纳率:81%
帮助的人:203万
展开全部
每次循环中都创建了一个新的线程对象,所以start启动了二十个不同的线程。另外,不是所有东西用多线程都能加速,切换线程的时候也是会有损耗的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式