基础线程知识

1 篇文章 0 订阅



1:执行mian函数的线程

        该线程是执行main中的函数

2:负责垃圾回收的线程

 

Object 中 finalize()

        垃圾回收器调用此方法;

 

System(系统类)

        运行gc()方法(运行gc回收器)

 

System.gc();

 

 

jvm结束,它会强制清楚它所占的内存。

 

主线程结束,如果其它线程没有结束。(所以有可能jvm不会立即结束)

 

垃圾回收的判断方法:

    0.不会立即进行垃圾回收;

    1.判断堆内存的占用率;

    2.gc()调用不会立即执行

 

 

 

进程是由操作系统创建的,进而创建线程;

 

 

Thread 

        start()开启线程,调用方法;

 

权限问题:

    

 

synchronized 修饰的代码块,可以使代码块中的代码不会同时被多个线程执行;

 

 

静态的同步函数使用的锁是 该函数所属字节码文件对象

可以用getClass方法获取,也可以用当前 类名.class对象

 

 

死锁:同步的嵌套

附代码:

public class DeathLockDemo implements Runnable{

 private int num = 100;
 Object object = new Object();
 boolean flag = true;
 
 @Override
 public void run() {
  if(flag){
   while(true){
    synchronized(DeathLockDemo.class){
     show();
    }
   }
  }else{
   while(true)
   this.show();
  }
  
 }
 
 public synchronized void show(){
   synchronized (DeathLockDemo.class){
    if(num>0){
     try {
      Thread.sleep(10);
     } catch (InterruptedException e) {
      e.printStackTrace();
     }
     System.out.println(Thread.currentThread().getName()+"....sale...."+num--);
    }
   }
 }
 
}

class demo{
 public static void main(String[] args){
  DeathLockDemo demo = new DeathLockDemo();
  
  Thread t1 = new Thread(demo);
  Thread t2 = new Thread(demo);
  
  t1.start();
  try {
   Thread.sleep(10);
  } catch (InterruptedException e) {
   e.printStackTrace();
  }
  demo.flag = false;
  t2.start();
 }
}

 

最后,希望本文对你有帮助,领个红包吧!



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值