`
txf2004
  • 浏览: 6877245 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java 中的多线程 内部类实现 数据共享 和 Runnable实现数据共享

 
阅读更多

/*
java 中Runnable的好处 可以实现共享一个数据
在一个类已经从其他类派生的时候 我们不能使用 直接从Thread类派生 那么这时候我们可以通过实现Runnable
接口来实现
class Test
{
public static void main(String []args) throws Exception
{
NewThread nt=new NewThread();
new Thread(nt).start();
new Thread(nt).start();
new Thread(nt).start();
new Thread(nt).start();

while(true)
{
System.out.println(Thread.currentThread().getName()+": is run");
}

}
}


class NewThread implements Runnable
{
int index=0;
public void run()
{ while(true)

{
// System.out.println(Thread.currentThread().getName()+": is run");;
System.out.println(Thread.currentThread().getName()+":"+index++);
}

}

}
*/


/*
内部类也能实现多线程数据的共享 一般情况下我们是实现Runnable接口
*/


class Test
{
public static void main(String []args) throws Exception
{
NewThread nt=new NewThread();
nt.getThread().start();
nt.getThread().start();
nt.getThread().start();
nt.getThread().start();
while(true)
{
System.out.println(Thread.currentThread().getName()+": is run");
}

}
}

class NewThread
{
int index=0;
private class InnerThread extends Thread //设置为私有 隐藏 实现细节
{
public void run()
{
while(true)
{
System.out.println(Thread.currentThread().getName()+":"+index++);
}
}
}
Thread getThread()
{
return new InnerThread();
}
}

分享到:
评论

相关推荐

    java中的多线程内部类实现数据共享和Runnable实现数据共享借鉴.pdf

    java中的多线程内部类实现数据共享和Runnable实现数据共享借鉴.pdf

    java中的多线程内部类实现数据共享和Runnable实现数据共享归类.pdf

    java中的多线程内部类实现数据共享和Runnable实现数据共享归类.pdf

    Java多线程共享数据、同步、通信

     a)继承Thread,那么我们可以创建很多个这样的类,但是每个这样的类都是相互不关联的,也是说我们Thread类中的内容每个创建出来的类都有一份,因此它不适合作为数据共享的线程来操作。同时由于Java继承的性,我们...

    java并发编程:线程基础

    线程的创建: 详细讲解线程的创建方式,包括继承 Thread 类和实现 Runnable 接口。演示如何通过这些方式来创建和启动线程。 线程的生命周期: 解释线程的生命周期,包括新建、就绪、运行、阻塞和终止等状态。探讨...

    Java高级程序设计-多线程(二).pptx

    线程的创建有继承Thread类和实现Runnable接口两种方式,通过Runnable方式可以更加容易实现多线程之间资源共享。 通过sleep可以使线程进入休眠状态,通过join方法可以让线程处于等待,其他线程执行完毕后继续执行。 ...

    Java开发技术大全(500个源代码).

    ThreadImRunnable.java 继承Runnable接口实现多线程 mulThread.java 创建多个线程对象的类 demoJoin.java 演示使用join()以确保主线程最后结束 clicker.java 一个计数用的线程类 demoPri.java 调用上面这个类...

    Java抢火车票程序源码-multithread:多线程

    有两种方法,一继承Thread类,二实现Runnable接口,区别是类只能单继承,接口可以无限。 注意一点:多线程是异步,代码的执行顺序与调用顺序是没有关系的。线程的调用和线程都具有随机特性,原因是你不知道CPU什么...

    java 面试题 总结

    与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...

    Thinking in Java简体中文(全)

    2.2.3 Java中的数组 2.3 绝对不要清除对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 新建数据类型:类 2.4.1 字段和方法 2.5 方法、自变量和返回值 2.5.1 自变量列表 2.6 构建Java程序 2.6.1 名字的可见性 2.6.2 使用...

    java联想(中文)

    2.2.3 Java中的数组 2.3 绝对不要清除对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 新建数据类型:类 2.4.1 字段和方法 2.5 方法、自变量和返回值 2.5.1 自变量列表 2.6 构建Java程序 2.6.1 名字的可见性 2.6.2 使用...

    Java中的多线程编程

    Java是为数不多的真正实现多线程并发编程的语言   说到线程程,我们就不由的得先说说进程,所谓...在Java中实现基本的多线程有三种方式:   1、继承Thread类,重写run()方法; 2、继承Runnable接口,重写run()方法;

    java 编程入门思考

    2.2.3 Java中的数组 2.3 绝对不要清除对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 新建数据类型:类 2.4.1 字段和方法 2.5 方法、自变量和返回值 2.5.1 自变量列表 2.6 构建Java程序 2.6.1 名字的可见性 2.6.2 使用...

    Java初学者入门教学

    2.2.3 Java中的数组 2.3 绝对不要清除对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 新建数据类型:类 2.4.1 字段和方法 2.5 方法、自变量和返回值 2.5.1 自变量列表 2.6 构建Java程序 2.6.1 名字的可见性 2.6.2 使用...

    java程序设计实验指导代码

    第13章 多线程编程 13.1 预备知识 13.2 实验1 使用Thread类创建4线程程序 13.3 实验2 一个实现Runnable接口的小应用程序 13.4 实验3 线程同步与资源共享 13.5 实验4 wait( )和notify( )挂起与恢复线程 第14章 ...

    java笔试题大集合及答案(另附各大公司笔试题)

    60、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 答:有两种实现方法,分别是继承Thread类与实现Runnable接口 用synchronized关键字修饰同步方法 反对使用...

    JAVA_Thinking in Java

    2.2.3 Java中的数组 2.3 绝对不要清除对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 新建数据类型:类 2.4.1 字段和方法 2.5 方法、自变量和返回值 2.5.1 自变量列表 2.6 构建Java程序 2.6.1 名字的可见性 2.6.2 使用...

    java初学者必看

    最近正在学习Java,也买了很多的有关Java方面的书籍,其中发现《跟我学Java》这本书,都的很不错啊,所以顺便拿电脑把这本书的目录敲了下来,与大家分享。尤其是那些和我一样初学Java的朋友们,看看哪一节对你有用,...

    超级有影响力霸气的Java面试题大全文档

    与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...

    php多进程框架-模拟java多线程接口simple-fork-php.zip

    SimpleFork提供一套类似于JAVA多线程的进程控制接口,提供回收、同步、互斥、通信等方案,开发者可以关注业务问题,不需要过多考虑进程控制。 引入 composer require jenner/simple_fork require path/to/...

Global site tag (gtag.js) - Google Analytics