zoukankan      html  css  js  c++  java
  • Java并发实现一(并发的实现之Thread和Runnable的区别)

    package com.subject01;
    
    public class ThreadOrRunnable  {
    
    	public static void main(String[] args) {
    		System.out.println("Thread输出内容:");
    		// 三个线程为三个不同的对象资源,资源无法得到共享。由于不是同一个对象,所以也不会存在线程安全的问题
    		new ThreadDemo().start();
    		new ThreadDemo().start();
    		new ThreadDemo().start();
    		
    		System.out.println("Runnable接口实现输出内容:");
    		//三个线程共同使用同一个对象资源,可以达到资源共享的。但同时也会存在线程不安全的问题,所以对象资源需要添加同步设置
    		RunnableDemo runDemo = new RunnableDemo();
    		new Thread(runDemo).start();
    		new Thread(runDemo).start();
    		new Thread(runDemo).start();
    	}
    	
    	
    }
    class ThreadDemo extends Thread{
    	private int ticket = 5 ;
    	@Override
    	public void run() {
    		while(ticket>0){
    			System.out.println("ticket="+ticket--);
    		}
    	}
    }
    
    class RunnableDemo implements Runnable{
    
    	private int ticket = 5 ;
    	@Override
    	public void run() {
    		// 存在线程不安全,需要添加同步设置
    		synchronized (this) {
    			while(ticket>0){
    				try {
    					Thread.sleep(1000L);
    				} catch (InterruptedException e) {
    					e.printStackTrace();
    				}
    				System.err.println("ticket="+ticket--);
    			}
    		}
    		
    	}
    	
    }
    

    http://blog.csdn.net/ns_code/article/details/17161237  

  • 相关阅读:
    新概念英语(第一册)Lesson 1
    第七篇、Python之模块/包
    解压序列
    eval函数
    python--magic module 文件类型识别
    MIME_type
    彻底删除git中的文件(包括历史提交记录)
    for循环与range()函数
    Linux 内核的 Makefile
    Python module ---- abc
  • 原文地址:https://www.cnblogs.com/xiaotao726/p/5453481.html
Copyright © 2011-2022 走看看