java基础之——多线程


	代码体现:

public class MyThread extends Thread

{

public void run()

{

for(int x=0; x<100; x++)

{

System.out.println(getName()+"---"+"hello"+x);

}

}

}

 

public MyThreadTest

{

public static void main(String[] args)

{

MyThread my1 = new MyThread();

MyThread my2 = new MyThread();

 

my1.start();

my2.start();

}

}


多线程(理解)

(1)就是应用程序有多条执行路径。

进程:就是正在运行的程序。

线程:就是进程的执行路径,执行单元。

(2)如何使用多线程程序:(掌握)

A:方式继承Thread类。

a:创建类继承Thread

b:重写Thread类的run()方法。

run()方法里面才是封装线程的代码。

c:通过调用start()方法启动线程并调用run()方法。

 


 

 

B:方式2 实现Runnable接口

a:创建一个类实现Runnable接口

b:重写run()方法

c:创建实现类对象,并把它作为参数传递给Thread类的构造方法,创建Thread对象

d:通过Thread的对象执行

 

	代码体现:

 

public class MyRunnable implements Runnable

{

public void run()

{

public void run()

{

for(int x=0; x<100; x++)

{

System.out.println(Thread.currentThread().getName()+"---"+"hello"+x);

}

}

}

}

 

public class MyRunnableTest

{

public static void main(String[] args)

{

MyRunnable my = new MyRunnable();

 

Thread t1 = new Thread(my);

Thread t2 = new Thread(my);

 

t1.start();

t2.start();

}

}


(3)线程的随机性原理

多个程序其实是CPU的在做着高效切换执行的。

(4)线程的生命周期(面试题 自己补齐)

新建

就绪

运行

阻塞

死亡

(5)线程安全问题

A:卖票案例

 

B:为什么有问题

a:有共享数据

b:共享数据被多条语句操作

c:在多线程环境中

(6)线程安全问题的解决方案:

A:同步代码块

synchronized(锁对象)

{

被同步的代码

}

B:同步方法

synchronized加在方法上。

 

一般推荐使用同步代码块。

(7)线程间的通信问题

学生类:

设置学生属性的类:

获取学生属性的类:

测试类:

(8)常见的方法

优先级

暂停线程

加入线程

守护线程

(9)面试题:

sleep()wait()的区别?

启动线程到底调用的是哪个方法?

run()start()的区别?

同步的原理,以及有几种实现方式?


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值