Java 多线程(一)
来源:互联网 发布:js如何理解面向对象 编辑:程序博客网 时间:2024/05/06 07:27
public class Test1Thread extends Thread { private int ticketscount = 100; @Override public void run() { while (true) { sale(); } } //lock private synchronized void sale(){ if (ticketscount > 0) { try { //sleep Thread.sleep(1000); //wakeup //Thread.interrupted(); } catch (Exception e) { e.printStackTrace(); } int curent = ticketscount--; System.out.println(String.format("%s卖出了第%s张票", Thread.currentThread().getName(), curent)); } }}
public class TestRunable implements Runnable { private int ticketscount = 100; private Lock lock = new ReentrantLock(); @Override public void run() { while (true){ sale(); } } private void sale(){ try { lock.lock(); if(ticketscount>0){ Thread.sleep(1000); System.out.println(String.format("%s卖出了第%s张票", Thread.currentThread().getName(),ticketscount--)); } }catch (Exception e){ e.printStackTrace(); }finally { lock.unlock(); } }}
public class TestMain { /** * 对于java程序,只要有一个前台线程在运行,这个进程就不会结束 * 如果只有后台线程运行,进程会结束 */ public static void test1(){ //创建一个资源对象 Test1Thread test1Thread = new Test1Thread(); //创建多个线程来竞争资源 //线程一 Thread thread1 = new Thread(test1Thread); thread1.setName("John"); //前台线程 thread1.setDaemon(false); thread1.start(); //线程二 Thread thread2 = new Thread(test1Thread); //前台线程 thread2.setDaemon(false); thread2.setName("BOB"); thread2.start(); } public static void test2(){ TestRunable runable = new TestRunable(); new Thread(runable).start(); new Thread(runable).start(); } public static void main(String[] args){ // test1(); test2(); }}
阅读全文
0 0
- java多线程:多线程(一)
- Java--多线程(一)
- java(多线程 一)
- JAVA多线程(一)
- java多线程(一)
- Java多线程(一)
- Java多线程(一)
- java多线程(一)
- Java多线程(一)
- Java多线程(一)
- java---多线程(一)
- Java多线程(一)
- Java多线程(一)
- java多线程(一)
- java多线程(一)
- Java多线程(一)
- Java多线程(一)
- Java多线程(一)
- js改变背景颜色有感
- 【POJ1823】Hotel
- java项目01 管家婆项目简单的增删改查
- 【剑指offer】面试题 29:顺时针打印矩阵
- 好开心 饭点前又AC一题
- Java 多线程(一)
- PAT 1036跟奥巴马一起编程
- ios对于fixed属性不兼容的解决方案
- 1.Eclipse搭建JFinal坏境(Jetty运行)
- 生僻姓(多音字姓)
- WebView中Settings积累
- 矩阵快速幂(CRB and Puzzle,HDU 5411)
- 机器学习之决策树
- 焦大SEO:做SEO怎么快速入门