什么建网站免费,自己的网站是什么样子的,北京企迪网站建设公司,表情包在线制作网站一.两种创建线程的方式
1.继承Thread类#xff08;匿名内部类#xff09; 创建方式#xff1a;
1.定义一个子类继承Thread#xff0c;重写run方法
2.创建子类对象#xff0c;
3.调用子类对象的start方法#xff08;启动还是执行的run方法#xff09;
优缺点#x…一.两种创建线程的方式
1.继承Thread类匿名内部类 创建方式
1.定义一个子类继承Thread重写run方法
2.创建子类对象
3.调用子类对象的start方法启动还是执行的run方法
优缺点
1.编码简单
2.只能继承Thread无法继承其他类不利于功能扩展
2.实现Runnable接口 创建方式
1.定义一个任务类实现Runnable接口重写run方法
2.创建任务类对象
3.把任务类对象交给Thread来处理
4.调用线程对象的start执行
优缺点
1.可以继承其他类 实现其他接口扩展性强
2.需要Thread还需要多一个Runnable对象
3.匿名内部类 二.线程和进程的区别
1.定义
线程和进程是操作系统中进行任务管理和资源分配的基本单元
进程Process是程序的一次执行实例是资源分配的基本单位。每个进程都有独立的地址空间、数据段、代码段和堆栈段。线程Thread是进程中的一个执行单元是CPU调度和执行的基本单位。一个进程可以包含多个线程它们共享进程的资源如内存、文件句柄等。
2.区别
1.一个进程可以包含多个线程线程在进程的内部。
2.进程之间的资源是独立的线程之间的资源则是共享的。
每个进程都有独立的虚拟地址空间也有之间独立的文件描述符表同一进程的多个线程之间则共用这一份虚拟地址空间和文件描述符表。
3.进程是操作系统中资源分配的基本单位线程是操作系统中调度执行的基本单位。
4.多个进程同时执行时如果一个进程崩溃一般不会影响其他进程而同一进程内的多个线程之间如果一个线程崩溃很可能使得整个进程崩溃。
5.进程的上下文切换速度比较慢而线程的上下文切换速度比较快。
6.进程的创建/销毁/调度开销大线程的创建/销毁/调度开销相对少很多。
三.synchronized
1.定义
synchronized 是 Java 中的关键字是一种同步锁。主要应用于多线程环境下保证线程的安全性。
2.用法
1.修饰代码块
被修饰的代码块称为同步语句块其作用的范围是大括号{} 括起来的代码作用的对象是调用这个代码块的对象;
2.修饰方法
被修饰的方法称为同步方法其作用的范围是整个方法作用的对象是调用这个方法的对象;
虽然可以使用 synchronized 来定义方法但 synchronized 并不属于方法定义的一部分因此synchronized 关键字不能被继承。如果在父类中的某个方 法使用了 synchronized 关键字而在子类中覆盖了这个方法在子类中的这 个方法默认情况下并不是同步的而必须显式地在子类的这个方法中加上 synchronized 关键字才可以。当然还可以在子类方法中调用父类中相应的方 法这样虽然子类中的方法不是同步的但子类调用了父类的同步方法因此 子类的方法也就相当于同步了。
3.修饰静态方法
其作用的范围是整个静态方法作用的对象是这个类的 所有对象;
4.修饰一个类
其作用的范围是synchronized后面括号括起来的部分作用对象是这个类的所有对象。
四.锁