知识大全 多线程成共享数据方式

Posted

篇首语:聪明出于勤奋,天才在于积累本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 多线程成共享数据方式相关的知识,希望对你有一定的参考价值。

    public class MultiThreadShareData         /**        * 多线程成共享数据 面试题 第一种 买票系统 方法         * 方式 :如果每个线程执行相同的代码 可以使用同一个Runable对象 这个Runable对象中有那个共享的数据        */        public static void main(String[] args)         ShareData data = new ShareData ()         new Thread(data) start()         new Thread(data) start()                         class ShareData implements Runnable        private int count = ;        @Override        public void run()         while(true)        count ;                                ××××××××××××××××××××××××××××××××××××××××××××        public class MultiThreadShareData         /**        * 多线程成共享数据(共享数据是指同一个对象)        * 面试题         * 第二种方式 如果比如多个个线程执行代码不同比如以下示例一会加 一会减 测需要 个Runable 对象来操作         设计 个线程 其中 个线程每次对j增加 另外两个线程对J 每次减少 写出程序         */        public static void main(String[] args)         //共同对象        final ShareData data = new ShareData()         /* 加 j */        new Thread(new Runnable()//内部类        @Override        public void run()         data sub()                 ) start()         /* 减 j  */        new Thread(new Runnable()        @Override        public void run()         data add()                 ) start()                         class ShareData         private int j= ;        public synchronized void add()        j++;                public synchronized void sub()        j ;                        demo : 网上搜索的答案        /**        * 第二种方式 如果比如多个个线程执行代码不同比如以下示例一会加 一会减 测需要 个Runable 对象来操作         设计 个线程 其中 个线程每次对j增加 另外两个线程对J 每次减少 写出程序         * @author Administrator        * 这里 个Runnable都是内部类 可以访问外部类的成员变量 这里是 j 通过内部类调用外部类方法 J++ J         */        public class ThreadTest         private int j;        public static void main(String args[])         ThreadTest tt = new ThreadTest ()         //必须通过外部类的对象才能实例化内部类        Inc inc = tt new Inc()         Dec dec = tt new Dec()         for (int i = ; i < ; i++)         Thread t = new Thread(inc)         t start()         t = new Thread(dec)         t start()                         private synchronized void inc()         j++;        System out println(Thread currentThread() getName() + inc: + j)                 private synchronized void dec()         j ;        System out println(Thread currentThread() getName() + dec: + j)                 //内部类 增        class Inc implements Runnable         // 可以操作外部类的变量 j        public void run()         for (int i = ; i < ; i++)         inc()                                 //内部类 减        class Dec implements Runnable         // 可以操作外部类的变量 j        public void run()         for (int i = ; i < ; i++)         dec()                                 cha138/Article/program/Java/gj/201311/27451

相关参考

知识大全 Java多线程锁如何进行数据同步共享

Java多线程锁如何进行数据同步共享  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java多线

知识大全 同一进程中的线程究竟共享哪些资源

  线程共享的环境包括进程代码段进程的公有数据(利用这些共享的数据线程很容易的实现相互之间的通讯)进程打开的文件描述符信号的处理器进程的当前目录和进程用户ID与进程组ID  &nb

知识大全 Java中多线程之间可以通过接口来实现信息共享

Java中多线程之间可以通过接口来实现信息共享  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  提

知识大全 java多线程中synchronized关键字的用法

  由于同一进程内的多个线程共享内存空间在Java中就是共享实例当多个线程试图同时修改某个实例的内容时就会造成冲突因此线程必须实现共享互斥使多线程同步  最简单的同步是将一个方法标记为synchron

知识大全 java的volatile与多线程

  Java语言规范中指出为了获得最佳速度允许线程保存共享成员变量的私有拷贝而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比  Volatile修饰的成员变量在每次被线程访问时都强迫从

知识大全 java间的线程通信

  不同线程间进行通信通常有两种简单方法  方法一通过访问共享变量的方式(注需要处理同步问题)  方法二通过管道流  其中方法一有两种实现方法即  方法一a)通过内部类实现线程的共享变量  代码如下 

知识大全 多线程编程的设计模式 临界区模式

  临界区模式CriticalSectionPattern是指在一个共享范围中只让一个线程执行的模式它是所有其它多线程设计模式的基础所以我首先来介绍它把着眼点放在范围上这个模式叫临界区模式如果把作眼点

知识大全 Java多线程处理方式

Java多线程处理方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &nb

知识大全 C#实现的多线程异步数据包接收器框架

C#实现的多线程异步数据包接收器框架  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  几天前在博问

知识大全 C# 实现的多线程异步Socket数据包接收器

C#实现的多线程异步Socket数据包接收器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  几天