开始多线程
来源:互联网 发布:中国小镇 知乎 编辑:程序博客网 时间:2024/06/05 19:56
多线程,开启高级工程师之旅。第一步,写一个多线程。
在java中实现多线程的方式有两个:继承Thread类和实现Runnable接口
第一种:继承Thread
package com.test.thread;public class TestThead extends Thread{public static int index =100;public String name ;public TestThead(){}public TestThead(String name ){this.name = name;}public void print() throws Exception{synchronized(TestThead.class){for (;index >0; index--) {System.out.println(name + " === "+index);}}}@Overridepublic void run() {try {print();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}public static void main(String[] args) {TestThead t1 = new TestThead("thread-a");TestThead t2 = new TestThead("thread-b");t1.start();t2.start();}}多线程一般都会牵扯到共享资源,有共享资源就要考虑到同步;以上代码开启两个线程,对共享资源index进行顺序的倒序打印(100、99、98.....3、2、1)。
第二种:实现Runable接口
package com.test.thread;public class TestRunable implements Runnable{public int index = 100;@Overridepublic synchronized void run() {for ( ;index >0; index--) {System.out.println(Thread.currentThread().getName() + " === "+index);}}public static void main(String[] args) {TestRunable runable = new TestRunable();new Thread(runable,"aa").start();new Thread(runable,"bb").start();}}
注意两种实现和加锁的位置
第一种共享资源是static的index,大家都知道static的是静态变量,属于类的,所以锁的位置加在synchronized(TestThead.class)上了,这样就能实现对index的同步,还有在main方法中执行的时候是new了两个对象。
第二种共享的资源是一个对象的成员变量,锁直接加在方法上了,执行的时候是对对一个对象开启的两个线程。
阅读全文
0 0
- 开始多线程
- 多线程开始学习1
- 今天开始多线程的学习
- java多线程编程--如何开始一个线程
- 爬取豆瓣书籍 --开始使用多线程
- Java的多线程编程模型5--从AtomicInteger开始
- Java的多线程编程模型5--从AtomicInteger开始
- Java多线程随手记——开始记录
- 多线程断点下载(开始下载,暂停下载,百分比进度条)
- android 多线程断点下载,listview 模式 开始 暂停等功能
- MFC 多线程拷贝文件开始暂停停止和进度条
- 多线程技术----最简单的demo开始之windows版
- 多线程技术----最简单的demo开始之linux版
- 多线程断点下载(开始下载,暂停下载,百分比进度条)
- C++并发编程1 - 让我们开始管理多线程
- [知了堂学习笔记]_Java多线程(1)-- 基本概念并开始创建多线程程序
- ~~~~~~~~开始~~~~~~~~
- 开始
- PAT--1077. Kuchiguse
- Java参数传递,值传递
- querylist 入门query部署,获取网页的信息。
- Excel导入SQL时,如何动态获得Sheet的名字
- stm32成长记之滴答时钟
- 开始多线程
- centos 安装mysql 5.5.44
- 一起来点React Native——你必须要会点FlexBox布局
- 20170803~20170804
- 解析动态代理模式与跟自定义注解配合使用以及事务注解原理
- java Logger类和Apache slf4j
- 如何在阿里云安装和调用R程序
- python 列表分片
- JavaScript中arguments关键字