黑马程序员_java基础之多线程

本文介绍了Java中的多线程概念,包括进程与线程的区别、多线程的优点及潜在问题,并通过示例代码展示了如何创建简单的线程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线程
----------------------- android培训java培训、java高新技术博客、期待与您交流! -------------------------

进程:正在进行中的程序(直译).
  
多线程定义:就是进程中一个负责程序执行的控制单元(执行路径),一个进程中可以多执行路径,称之为多线程。

总结:

       一个进程中至少要有一个线程。

       开启多个线程是为了同时运行多部分代码。

       每一个线程都有自己运行的内容。这个内容可以称为线程要执行的任务。

多线程好处:解决了多部分同时运行的问题。

多线程的弊端:线程太多回到效率的降低。


其实应用程序的执行都是cpu在做着快速的切换完成的。这个切换是随机的。


JVM启动时就启动了多个线程,至少有两个线程可以分析的出来。

1,执行main函数的线程,
  该线程的任务代码都定义在main函数中。

2,负责垃圾回收的线程。


创建简单线程

class Demo extends Object
{
	public void finalize()
	{
		System.out.println("demo ok");
	}
}


class  ThreadDemo
{
	public static void main(String[] args) 
	{

		new Demo();
		new Demo();
		new Demo();
		System.gc();
		System.out.println("Hello World!");
	}
}

----------------------- android培训java培训、java高新技术博客、期待与您交流! -------------------------



### 关于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、付费专栏及课程。

余额充值