中软java学习8月12日笔记

进程: 在操作系统中允许的一个独立的程序
       每一个允许的独立程序,都是一块独立的内存;
       如果一个进程崩溃了,其它进程不受影响;
       不同的操作系统,管理模式不一样;



线程:一个进程中可以包含多个线程,每个线程都是进程资源中的不同访问路径;
      在JavaEE的编程中,程序运行在Web Server中,允许多用户同时访问,都是多线程的运行环境  


    进程会被线程消耗更多的资源,以Oracle和Sql-server为例,Oracle以进程为分配单元,Sql-server以线程为分配单元

    

java.lang 类 Thread   
      线程 是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程

     每个线程都有一个优先级,高优先级线程的执行优先于低优先级线程

     每个线程都可以或不可以标记为一个守护程序


在单CPU的环境下,如Windows是一个多任务的环境(即多线程同时运行)。单CPU为了实现多线程,采用的是时间分片的算法;
这不是真正的多线程,是一个模拟实现;


创建新执行线程有两种方法:
    1. 继承Thread类,并重写run()方法

    class PrimeThread extends Thread {
         long minPrime;
         PrimeThread(long minPrime) {
             this.minPrime = minPrime;
         }
 
         public void run() {
             // compute primes larger than minPrime
              . . .
         }
     }
     然后,下列代码会创建并启动一个线程:
     PrimeThread p = new PrimeThread(143);
     p.start();

   2. 创建线程的另一种方法是声明实现 Runnable 接口的类
      class PrimeRun implements Runnable {
         long minPrime;
         PrimeRun(long minPrime) {
             this.minPrime = minPrime;
         }
 
         public void run() {
             // compute primes larger than minPrime
              . . .
         }
     }
   然后,下列代码会创建并启动一个线程:
     PrimeRun p = new PrimeRun(143);
     new Thread(p).start();


//线程资源锁定的关键字 synchronized
   
   1. synchronized锁定方法  (当多线程并发的时候,只能有一个线程进入这个方法体)
                public synchronized void buyTicket(){ }

   2. synchronized锁定资源     
            当一个线程操作共享资源的时候,其它线程不能够修改该资源   
            synchronized(tickets ){
                //其它代码
            }

   3.  synchronized锁定当前对象,当一个线程进入这个代码块后,其它线程不允许进入
 
            synchronized(this ){
                //其它代码
            }


   4.   synchronized()只能锁定引用类型的对象,不能锁定基本类型变量
        int ticket = 100;            
    synchronized(ticket){
            
    }


/**
 * 死锁的4个必要条件:
 * 1、资源互斥条件:线程使用的资源中至少有一个不能共享,如一根筷子一次只能被一人使用
 * 2、线程持有资源并等待另一个资源:拿着筷子的同时等待另一只筷子
 * 3、资源不能被抢占:不能抢别人的筷子
 * 4、循环等待资源:一直不退出
 *
 */










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值