Java中的线程

1.什么是进程?什么是线程?两者之间什么关系?
进程:就是一个正在运行的程序,比如:typeroa、eclipse、浏览器等等

线程:线程是进程中的一个执行单元,例如:QQ音乐播放音乐和下载音乐

关系:在一个进程中可以包含多个线程
2.当需要在同一个时刻去做多件事情时,就需要开启多个线程

3.关键词:

Thread(线程类,用于管理线程的创建、开启及相关的信息)
Runnable(定义任务的接口)
4.创建线程的方式?
1.继承Thread类,通过start方法创建并开启线程(常用)

2.实现Runnable接口,结合Thread类创建并开启线程(常用)

3.实现Callable接口,通过Executor执行

4.通过线程池

代码很重要,重要注释

/**
 * Java中main函数称为主线程 
 * 多个线程之间的调用是互不影响的
 * 
 * 两种线程方式如何选择
 * 选第二个,选择继承的话也就意味着该子类不能再继承其他类,扩展性不好
 */
public class **** {

	public static void main(String[] args) {
		// 要执行的任务
		SubRun thread = new SubRun();
		// 需求:同一个任务需要多个线程执行
		// 实现Runnable接口,结合Thread类创建并开启线程
		Thread t1 = new Thread(thread);
		t1.start();
		Thread t2 = new Thread(thread);
		t2.start();
		
		// 继承Thread类,通过start方法创建并开启线程
		SubThread subthread1 = new SubThread();
		subthread1.start();
	}
}
	class SubThread extends Thread{
		
		@Override
		// run方法用于定义该线程要执行的任务
		public void run() {
			System.out.println("哈哈哈哈哈");
		}
	}
	
	class SubRun implements Runnable{
		@Override
		public void run() {
			System.out.println("呵呵呵呵呵");
		}
	}
5. 垃圾回收机制
import ****.User;
public class ***** {
	
	public static void main(String[] args) {
		new User();
		new User();
		new User();
		new User();
		new User();
		new User();
		new User();
		//通知垃圾回收器,回收垃圾
		System.gc();
	}
}
public class User {

	@Override
	protected void finalize() throws Throwable {
		System.out.println("执行垃圾回收");
		super.finalize();
	}
}
垃圾回收机制是java虚拟机中自动执行的一个线程

虚拟机的内存是有限的,因此,对于在程序运行过程中创建的对象(占用的资源),
虚拟机需要对其进行监控,当发现有对象不再有引用的时候就将其进行回收,该回收的动作是
贯穿整个程序的,但是,回收是不定时的,它是一个单独的线程,称该线程为垃圾回收机制。
对于垃圾是否要进行回收,需要先判断其是否为可回收(需要回收)的垃圾
6.如果程序中存在了垃圾,如何通知垃圾回收器进行回收
在System类中有一个方法叫gc(),用于通知的,对于每个实体类而言,其本身都自带了执行垃圾回收的功能
7.final、finally和finalize的区别
final修饰的变量叫常量,只能赋值一次

final修饰的方法叫最终方法,不能被重写

final修饰的类叫最终类,不能被继承

finally是异常中的一部分,最终必然会执行的代码块

finalize是垃圾回收机制的执行方法
8.说说垃圾回收机制
在垃圾回收机制中定义了很多回收算法,比较典型的是年代算法,
其中分新生代、老年代及持久代 新生代用于生命周期短的对象,经历过多次回收之后仍然存在的,
当其内存满的时候,会将其复制到老年代中,当老年代中的内存也满的时候就直接出发Full gc进行清理
	 java中的类等静态资源都存放在持久代中的
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值