java中的多线程 内部类实现多线程 Runable接口的实现

简介:   /* java.lang.Thead      java中的多线程    类从  Thread  覆盖run方法    调用start启动x线程  java中如果线程只剩后台线程那么程序终止运行 setDaemon设置为后台线程     当进城中只剩下后台线程  java...
 

/*
java.lang.Thead     
java中的多线程    类从  Thread  覆盖run方法    调用start启动x线程 
java中如果线程只剩后台线程那么程序终止运行 setDaemon设置为后台线程     当进城中只剩下后台线程 
java 中缺省线程优先级是5       MAX_PRIORITY   MINI_PRIORITY   NORM_PRIORITY    10  1   5
当优先级10的时候线程始终执行 我们可以在线程的任何时候  设置优先级

另外一种实现多线程的方法是实现 Runable接口   这样的好处是可以共享一个变量 。。
看下面代码

*/
class  MultiThread
{
 public static void main(String []args)
 {
  //NewThread nt=new NewThread();
 /* nt.setPriority(Thread.MAX_PRIORITY);   //设置最大优先级线程将一直执行
 // nt.setDaemon(true);//设置线程为后台线程 如果线程只剩下后台线程那么程序   退出执行
  nt.start();//启动线程
  while(true)
        System.out.println("main:"+Thread.currentThread().getName());
        */
           //     ThreadOne th=new ThreadOne();
             /*  new Thread(th).start();
               new Thread(th).start();
               new Thread(th).start();
               new Thread(th).start();
        */
 
     //内部类实现多线程
            ThreadTwo th=new ThreadTwo();
             th.getInner().start();
            th.getInner().start();
            th.getInner().start();
            th.getInner().start();
      
 
       
       
 } 
}

class NewThread  extends Thread   //java 中的多线程要从Thread类派生
{
 public  void  run()  //在我们的线程类中必须覆盖run方法
 {
  while(true)
  {
       System.out.println(getName());
   //    Thread.yield(); //线程暂停执行  对于单CPU可以实现暂停 但是对于多CPU效果就不同了
 }
 }
}

class  ThreadOne implements Runnable
{
 int index=0;
 public  void run()
 {
  while(true)
  {
   System.out.println(Thread.currentThread().getName()+"+"+index++);
  }
 }
}


//内部类实现多线程
class  ThreadTwo
{
 int index=0;
 private class  Inner extends Thread
 {
 public  void run()
 {
  while(true)
  {
   System.out.println(Thread.currentThread().getName()+"+"+index++);
  }
 }
 
 }
 
Thread  getInner()
{
 return new Inner();

}

目录
相关文章
|
4天前
|
安全 Java
深入理解 Java 多线程和并发工具类
【4月更文挑战第19天】本文探讨了Java多线程和并发工具类在实现高性能应用程序中的关键作用。通过继承`Thread`或实现`Runnable`创建线程,利用`Executors`管理线程池,以及使用`Semaphore`、`CountDownLatch`和`CyclicBarrier`进行线程同步。保证线程安全、实现线程协作和性能调优(如设置线程池大小、避免不必要同步)是重要环节。理解并恰当运用这些工具能提升程序效率和可靠性。
|
5天前
|
安全 Java
java多线程(一)(火车售票)
java多线程(一)(火车售票)
|
5天前
|
安全 Java 调度
Java并发编程:深入理解线程与锁
【4月更文挑战第18天】本文探讨了Java中的线程和锁机制,包括线程的创建(通过Thread类、Runnable接口或Callable/Future)及其生命周期。Java提供多种锁机制,如`synchronized`关键字、ReentrantLock和ReadWriteLock,以确保并发访问共享资源的安全。此外,文章还介绍了高级并发工具,如Semaphore(控制并发线程数)、CountDownLatch(线程间等待)和CyclicBarrier(同步多个线程)。掌握这些知识对于编写高效、正确的并发程序至关重要。
|
5天前
|
安全 Java 程序员
Java中的多线程并发编程实践
【4月更文挑战第18天】在现代软件开发中,为了提高程序性能和响应速度,经常需要利用多线程技术来实现并发执行。本文将深入探讨Java语言中的多线程机制,包括线程的创建、启动、同步以及线程池的使用等关键技术点。我们将通过具体代码实例,分析多线程编程的优势与挑战,并提出一系列优化策略来确保多线程环境下的程序稳定性和性能。
|
6天前
|
缓存 分布式计算 监控
Java并发编程:深入理解线程池
【4月更文挑战第17天】在Java并发编程中,线程池是一种非常重要的技术,它可以有效地管理和控制线程的执行,提高系统的性能和稳定性。本文将深入探讨Java线程池的工作原理,使用方法以及在实际开发中的应用场景,帮助读者更好地理解和使用Java线程池。
|
6天前
|
存储 安全 Java
Java中的容器,线程安全和线程不安全
Java中的容器,线程安全和线程不安全
13 1
|
13天前
|
存储 Java 数据库连接
java多线程之线程通信
java多线程之线程通信
|
25天前
|
存储 缓存 NoSQL
Redis单线程已经很快了6.0引入多线程
Redis单线程已经很快了6.0引入多线程
31 3
|
27天前
|
消息中间件 安全 Linux
线程同步与IPC:单进程多线程环境下的选择与权衡
线程同步与IPC:单进程多线程环境下的选择与权衡
57 0
|
1月前
|
Java 调度 C#
C#学习系列相关之多线程(一)----常用多线程方法总结
C#学习系列相关之多线程(一)----常用多线程方法总结