黑马程序员_java08_多线程

Java线程基础
本文介绍了Java线程的基本概念,包括线程与进程的区别、线程的创建方式等,并提供了具体的代码示例。
转载于:http://www.itxuexiwang.com/plus/view.php?aid=148
线程是程序中可以并行执行的任务。
java运行系统总是选当前优先级最高的处于就绪状态的线程来执行。如果几个就绪线程有相同的优先级,将会用时间片方法轮流分配处理机。


进程与线程的区别


进程属于一个独立的运行程序,线程是程序里面的一个分支。许多个线程组成一个程序的运行。


创建线程的两种方式


(1)线程类是由Thread类及其子类表示的,继承Run()方法定义了线程执行时的任务体,定义一个继承于Thread的线程类覆盖run()方法。
(2)任何实现接口Runnable的对象都可以作为一个线程的目标对象,类Thread本身也实现了接口Runnable,接口中的run()方法需要实现为线程执行的任务体。
(3)可以利用Thread的类方法currentThread()获得当前执行线程的信息。


方法一:


public class Person extends Thread{
public Person(String name){
this.name=name;
}
@Override
public void run(){
super.run();
}
}
1
2
3
4
5
6
7
8
9
方法二:


class Res
{
private String name;
private String sex;
boolean flag=false;
public synchronized void set(String name,String sex)
{
if (flag)
{
tr
### 关于Java多线程的学习笔记 #### 1. 实现多线程的方式 在Java中,可以通过继承`Thread`类或实现`Runnable`接口来创建多线程程序[^1]。 对于通过继承`Thread`类的方法: ```java class MyThread extends Thread { public void run() { System.out.println("MyThread running"); } } ``` 而采用实现`Runnable`接口的形式则更为灵活,因为这不会占用已有的继承机会,并允许共享同一个对象实例给多个线程使用: ```java class MyRunnable implements Runnable { @Override public void run() { System.out.println("MyRunnable running"); } } // 使用方式如下: new Thread(new MyRunnable()).start(); ``` #### 2. 创建并启动线程 一旦定义好了线程体之后,就可以利用`Thread`的构造函数传入该线程体,并调用其`start()`方法开启新线程执行任务。需要注意的是应该避免直接调用`run()`方法,因为它会在当前线程内顺序执行而不是新开一个独立的工作单元。 ```java public class Main { public static void main(String[] args) { Thread thread = new Thread(new MyRunnable()); thread.start(); // 正确做法 // 错误示范:thread.run(); } } ``` #### 3. 线程同步机制 当涉及到资源共享时,可能会遇到竞态条件等问题。为了确保数据一致性,在访问临界区资源前应当加锁保护。可以借助`synchronized`关键字或者更高级别的并发工具包如`ReentrantLock`来进行操作控制。 ```java synchronized (lockObject) { // 对共享变量的操作... } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值