java中的线程问题,请大家给个意见

问题描述

java中的线程问题,请大家给个意见

使用继承Thread的方式编写线程,我想创建10个线程并运行,下面的代码可不可行:

 package com.mfeng;

public class ThreadExample extends Thread{

    public void run() {
        System.out.println("Thread: " + getName() + " running");
    }

    public static void main(String[] args) {
        System.out.println(Thread.currentThread().getName());

        for (int i = 0;i < 10;i++) {
            ThreadExample threadExample = new ThreadExample();
            threadExample.start();
        }

    }
}

我是用for循环创建10个ThreadExample对象,然后启动线程。这样做有没有什么问题?

解决方案

[Java]线程问题
JAVA线程互斥问题
JAVA线程间通信问题

解决方案二:

在你给的这个代码里,是没有什么问题的

解决方案三:

没有什么问题,但是一般,我们把线程的代码和管理线程的代码分开来。

解决方案四:

没有问题,当是建议你使用实现Runnable接口来写

解决方案五:

你应该把你的线程所需要做的操作写成一个类,把生成线程并使用再令使用一个类,这样会更好点

解决方案六:

只看代码是没有问题的,不过我们分析问题还是要看应用的环境的。没有具体的操作和应用环境是无法判断这个代码可行不可行。

时间: 2024-09-07 11:58:17

java中的线程问题,请大家给个意见的相关文章

线程-懂java中lock锁的请进

问题描述 懂java中lock锁的请进 package thread; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantReadWriteLock; public class Foo { private final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(); private final Lock r = r

java中的线程

编写具有多线程能力的程序经常会用到的方法有: run(),start(),wait(),notify(),notifyAll(),sleep(),yield(),join() 还有一个重要的关键字:synchronized 本文将对以上内容进行讲解. 一:run()和start() 示例1: public class threadtest extends thread{public void run(){for(int i=0;i<10;i++){system.out.print(" &q

关于Java中停止线程执行的方法总结

Java中停止线程执行的方法 一.暂停或停止线程的理论 在Java编程中,要暂停或停止当前正在运行的线程,有几种方法.对于把线程转入睡眠Sleep状态,使用Thread.sleep()是最正确的方式.或许有人会问,为什么不使用等待wait()或通知notify()?要知道,使用等待或通知都不是很好的方式.线程可以使用等待wait()实现被阻塞,这属于条件等待的方式,当条件满足后,又会从阻塞转为等待状态.尽管可以在等待wait()条件那里放一个超时设置,但等待wait()的设计目的不是这样的,等待

Java中的线程Thread总结

首先来看一张图,下面这张图很清晰的说明了线程的状态与Thread中的各个方法之间的关系,很经典的! 在Java中创建线程有两种方法:使用Thread类和使用Runnable接口. 要注意的是Thread类也实现了Runnable接口,因此,从Thread类继承的类的实例也可以作为target传入这个构造方法.可通过这种方法实现多个线程的资源共享. 线程的生命周期: 1.新建状态(New):用new语句创建的线程对象处于新建状态,此时它和其它的java对象一样,仅仅在堆中被分配了内存 2.就绪状态

关于java 中的线程同步问题,求大神解释。

问题描述 关于java 中的线程同步问题,求大神解释. 对于一个已经继承了Runnable 接口的类来说,假设创建了一个它的实例为 account, 那么: for(int i=0;i<500;i++) { new Thread(account).start(); } 不会造成500个线程同步访问同一资源而引发冲突? 为什么: private ExecutorService executor = Executors.newCachedThreadPool(); //在线程池中为每个等待的任务创建

java中基于线程池和反射机制实现定时任务

文章标题:java中基于线程池和反射机制实现定时任务 文章地址: http://blog.csdn.net/5iasp/article/details/10949925 作者: javaboy2012 Email:yanek@163.com qq:    1046011462       直接上代码:   主要包括如下实现类: 1. Main类: 任务执行的入口: 调用main方法,开始加载任务配置并执行任务   package com.yanek.task; import java.util.

详解Java中的线程让步yield()与线程休眠sleep()方法_java

线程让步: yield()yield()的作用是让步.它能让当前线程由"运行状态"进入到"就绪状态",从而让其它具有相同优先级的等待线程获取执行权:但是,并不能保证在当前线程调用yield()之后,其它具有相同优先级的线程就一定能获得执行权:也有可能是当前线程又进入到"运行状态"继续运行!示例: class ThreadA extends Thread{ public ThreadA(String name){ super(name); } pu

Java中的线程同步与ThreadLocal无锁化线程封闭实现_java

Synchronized关键字 Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行.另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块. 然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(

Java中一个线程执行死循环有什么后果_java

假设有两个线程在并发运行,一个线程执行的代码中含有一个死循环如:while(true)....当该线程在执行while(true)中代码时,另一个线程会有机会执行吗? 示例代码(代码来源于互联网) public class Service { Object object1 = new Object(); public void methodA() { synchronized (object1) { System.out.println("methodA begin"); boolea