zoukankan      html  css  js  c++  java
  • 第十六周周总结 线程

    程序
    可以理解为一组静态的代码
    进程
    正在进行的程序 静态的代码 运行起来
    线程
    正在执行程序中的小单元

        1.主线程  系统线程
        2.用户线程  main
        3.守护线程(精灵)   GC
    
        线程------操作系统级别    CPU
        如何在Java中创建线程  让线程执行  多线程
        掌握每一个线程的几种不同状态  及状态之间如何切换
         new       start()   cpu分配run()   wait()        exception over
        创建线程----就绪状态-----执行状态-----等待/挂起------异常/死亡
                      |                        |
                      |________________________|                        
                              notify/notifyAll
       实现线程的一种过程
       1.自己描述一个类
       2.继承父类Thread
       3.重写run方法
       4.new一个线程对象   调用start()方法   让线程进入就绪状态
    
       实现线程的另一个过程
       1.自己描述一个类
       2.实现一个父类接口
       3.重写run方法
       4.new一个线程对象
       在runnable实现线程的过程中如果先要调用Thread中的start方法
       1.创建一个Thread对象  Thread t1 = new Thread(r1);
       2.t1.start();
    
    public class 售票口 extends Thread {
    	private int ticket=10;
    	private boolean flag=true;
    	public void run() {              //重写run()方法
    		 while(flag) {
                 try {
                     Thread.sleep(50);   //让当前线程休眠0.05秒
                 }catch(Exception e) {
                     e.printStackTrace();//异常时打印异常信息在程序中出错的位置及原因
                 }
                sale();
    	}
    }
    	public synchronized void sale() {
    		if(ticket>0)
    	     System.out.println(Thread.currentThread().getName()+"ticket="+ticket--);//Thread.currentThread()返回当前线程变量,又启动一个新的线程
    	}
    } 
    
    
    
    public class 售票口显示 {
    	public static void main(String[] args) {
    	售票口 m=new 售票口();
        for(char i='A';i<='C';i++) {
        new Thread(m,"窗口"+i+"售票,").start();//Thread(m,"窗口"+i+"售票,") 第一个参数是thread2线程可以映射的线程,后面的String是新线程的名称。
    }
        }
    }
    
  • 相关阅读:
    Pyhon的json库常用方法
    常用的Python操作
    Leetcode: 1301.Number of Paths with Max Score
    redis 源码阅读杂记
    二分查找性能试验
    leetcode: 600. Non-negative Integers without Consecutive Ones
    Leetcode: 902. Numbers At Most N Given Digit Set
    leetcode:956. Tallest Billboard
    innodb 插入性能简单测试
    redis 源码阅读之 redis.c
  • 原文地址:https://www.cnblogs.com/shsy/p/12039604.html
Copyright © 2011-2022 走看看