android实现线程的方法有什么不同,Android线程篇(一):实现线程的几种方法及区别...

8e9d29567b26

前言:看了这么多线程方面的文章,都是比较松散、碎片的知识点,从来没有看到系统的讲解线程以及并发的文章,自从看了微信公众号"code小生"发的一片关于线程方面基础的讲解,文章写的很好,通俗易懂,但是我感觉到很不过瘾,因为我刚尝到点滋味,后面没有了,所以我决定写个线程和并发的系列,笔者造诣有限,如有描述不当,还忘大家多多指正。

本系列文章全部用Kotlin实现

本文参考“code小生”公众号“带你通俗易懂的理解——线程、多线程与线程池”

作者:wildma

作者博客:http://www.jianshu.com/p/fd7d30aa451b

今天开启线程讲系列讲解的第一篇文章,我们从最基础来讲起,首先先来几个概念:

进程和线程

进程:简单来说它是线程的载体,其实它不单单是线程的载体,这个想知道可以自行百度,不是我们今天要讨论的重点

线程:程序执行流的最小单元,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源

线程和进程的关系:同一进程中可以有多个线程,每个线程可与同属一个进程的其它线程共享进程所拥有的全部资源

上面的讲解不是很好理解,关于进程与线程的讲解,这篇文章讲的挺好的-->进程与线程的一个简单解释,结合这篇文章可以透彻了解线程和进程 http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html

下面来进入本文的重点,来讲解一下实现线程的几种方法:

1.var一个Thread对象

var一个Thread对象

重写Thread的run方法

run方法里面写你的代码块

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

var thread=object : Thread() {

override fun run() {

super.run()

for (i in 0 until 100){

println("<<<<<<

}

}

}

thread.start()

}

骚年,看不懂就该补课了,强烈推荐项目使用Kotlin

2.实现Runnable接口

直接上代码:

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

var thread=Thread(myRunnable())

thread.start()

}

class myRunnable : Runnable{

override fun run() {

for (i in 0 until 100){

println("<<<<<<

}

}

}

3.实现 Callable 接口

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

//创建单个线程池

var myPool=Executors.newSingleThreadExecutor()

var myFuture=myPool.submit(myCallable())

myFuture.get()

println("<<<<<<<<

}

class myCallable : Callable{

override fun call(): Int {

var a=0

for (i in 0 until 100){

a=i

}

return a

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值