官方文档: http://kotlinlang.org/docs/reference/coroutines.html1.协程概念和作用(Coroutines)自Kotlin 1.1起开始有协程(coroutines),但目前还是实验性功能(experimental)! 一些耗时操作(网络IO、文件IO、CPU/GPU密集型任务)会阻塞线程直到操作完成, Kotlin的协程提供一种避免阻塞且更廉价
线程的好处是不言而喻的,它能帮我们刚更多的事情,同时干不同的事情在程序设计中是经常出现的,这种时候我们使用的是线程。在Kotlin 中,使用的还是原先java 的那一套,用的还是Thread ,可能是在java 中Thread就挺好用的,Kotlin 没有做太多的变化。线程Thread的使用Thread 是一个类,有几种用法,比较常规的是声明一个类,继承Thread ,重载run()的方法,
转载 2024-08-16 11:15:23
50阅读
一、背景线程安全问题由全局变量和静态变量引起,多个线程同时对统同一对象进行写操作,就可能发生每个线程读取到的值不一样。简而言之,如果在线程中不对变量进行写操作,值进行读操作,就可以避免线程安全。二、加锁锁可以分为实例锁和全局锁,通用的方法有Synchronized关键字和Lock方法进行加锁实例锁:对某一个对象加锁,如果该对象的类的单例类,将同时也和全局锁一样 全局锁:对某一类加锁,该类的所有对象
Kotlin学习笔记前言 今年听闻Google在I/O开发者大会上宣布,将Kotlin语言作为Android开发的一级编程语言,意味着在开发Android这块,迟早会取代Java,只是时间问题,两天的使用感受来看,语法上确实比Java简洁许多,能很程度上避免空指针问题,在方法与变量定义上更加灵活,刚接触会有点不习惯,但只要习惯了你会不觉爱上它。基本数据类型 在数据类型这点上与java类似,常用的有
Kotlin可见修饰符使用kotlin可见修饰符和java中的类似,同样使用的是public 、protected、private修饰符,不过在kotlin中默认的是public,在java中默认的修饰符是包私有,在kotlin中只把包当作在命名空间中组织代码的一种方式使用,并没有对其做可见性控制,而是提供了一个新的修饰符,internal来替代。修饰符类成员顶层声明public所有地方可见所有地
Kotlin笔记 线程(十一) 文章目录Kotlin笔记 线程(十一)一、线程创建二、线程状态三、线程管理1、join 一、线程创建fun main(args: Array<String>) { // public fun thread( // start: Boolean = true, //创建完成是否马上启动 // isDaemon: Boo
  协程( Coroutines)并不是 Kotlin 提出来的新概念,很多的编程语言都有实现,如:Go、Python 等。。本文所讲,专指kotlin的协程。  在Android 11中,Asynctask已经被废弃了,因为协程可以更简单,直观的实现异步任务。而且协程是谷歌推荐的异步处理机制,那么什么是协程呢?其实很简单,就是kotlint封装的一套线程api(线程框架),类似于 Java 中的
kotlin协程的异常处理在上一篇中我们提到这节将会讲解协程的异常处理,但是笔者在写这篇文章的时候遇到了些问题,主要是讲解的深度怎么去把控,因为要处理异常,首先得知道异常是如何产生,那么必然就涉及到协程创建->启动->执行->调度->恢复->完成(取消)流程。这其中每一步都能罗列出一堆需要讲解东西,所以笔者最终决定,我们在这章节中只查看关键点位置,其中涉及到的一些跳出
# 如何在Android Kotlin中创建新线程 作为一名经验丰富的开发者,我将教你如何在Android Kotlin中创建新线程。这对于提高应用程序的性能和避免主线程阻塞非常重要。下面是整个过程的步骤,我们将通过表格的形式展示: ```mermaid journey title 创建新线程流程 section 创建新线程 开始 --> 初始化新线程: 创建一
原创 2024-07-07 03:33:15
49阅读
# Android Kotlin 线程锁的基本概念与应用 在 Android 开发中,线程安全是一个重要的组成部分。尤其是在多线程环境下,数据共享可能会导致数据不一致的情况。为了确保数据的完整性和一致性,线程锁(或简称锁)应运而生。本文将介绍 Kotlin 中的线程锁的基本概念,并提供代码示例。 ## 线程锁的定义 线程锁是一种同步机制,用于控制对共享资源的访问。在 Kotlin 中,可以使
原创 10月前
102阅读
今天看看kotlin中的安全调用符的一个注意点。之前的文章已经讲过kotlin中的安全调用符,可以点击查看。知识点kotlin中的安全调用符 ?. 是线程安全的。代码验证我们打开IDEA写下面一段代码:class Sample(var name: String?){ fun test(){ if(name != null){ println(name
# Android Kotlin 线程安全实现入门指南 线程安全是现代编程中一个非常重要的概念,特别是在Android开发中。为了确保应用在多线程环境下的正常运行,我们需要采取一定的措施来保证线程之间的互斥访问。本文将为你详细介绍如何在Android中实现Kotlin线程安全。 ## 实现流程 我们将通过以下几个步骤来实现线程安全。下表总结了每一步的任务及其目的。 | 步骤 | 任务
(一)简介Handler机制是一套Android消息传递机制。在Android开发多线程的应用场景中,将工作线程中需更新UI的操作信息 传递到 UI主线程,从而实现 工作线程对UI的更新处理,最终实现异步消息的处理。 在Android开发中,为了UI操作是线程安全的,规定了只允许主线程更新Activity里的UI组件。但在实际开发中,存在多个线程并发操作UI组件的情况,导致UI操作线程不安全。故采
# Android Kotlin 线程池详解 在现代 Android 开发中,线程池是一种常用的并发处理机制,可以有效地管理线程,优化资源使用,提升应用性能。本篇文章将带你深入了解 Android Kotlin 中的线程池,包括基本概念、实现方式、使用示例以及优缺点,帮助你掌握这一重要技术。 ## 什么是线程池? 线程池是一种管理线程的设计模式,其核心思想是预先创建一组线程线程池)并重用它
原创 9月前
100阅读
MVPMVP和MVCDagger讲完了,下面进入我们的另一大正题MVP:MVC模式无论是做web开发还是安卓应该都比较熟悉,毕竟刚开始的时候大家都是用这种开发架构的。刚开始用MVC(M-Model-模型、V-View-视图、C-Controller-控制器)的时候,就感觉一个Activity或者Fragment中要写很多行代码,所有的数据和View都需要在一个文件中写,感觉特别臃肿,后来真正开发的
# 基于 Android Kotlin Compose 的 ECharts 组件使用指南 在现代应用开发中,数据可视化的重要性与日俱增。AndroidKotlin Compose 提供了一种简洁灵活的方式来构建用户界面,而 ECharts 是一款强大的开源数据可视化库。结合这两者,可以实现丰富的图表展示,提升用户体验。 ## ECharts 简介 ECharts(Enterprise
原创 2024-09-20 06:20:15
309阅读
引言今天玩小米mix2的时候看到了小米的时间控件效果真的很棒。有各种动画效果,3d触摸效果,然后就想着自己能不能也实现一个这样的时间控件,那就开始行动绘制一个简易版本的小米时间控件吧o((≧▽≦o)效果图首先来看看小米的效果是这个样子的 再来看看我的效果 具体实现过程我们都知道自定控件的绘制有很多种,继承view,继承viewgroup,还有继承已有的控件,但是无非就几个步骤:m
转载 2023-12-21 05:48:02
101阅读
一、协程是如何创建的?launch、async 可以创建、启动新的协程,那么协程到底是如何创建的?runBlocking { println(Thread.currentThread().name) launch { println(Thread.currentThread().name) delay(100L)
使用Kotlin时,我们通常使用@Synchronized实现线程间同步,因此很多刚接触协程的同学,视图在挂起函数上添加@Synchronized以实现”协程间同步”,这是否有效呢?1. 协程+Synchronized ?通常,协程可以帮助我们执行并行任务:suspend fun doSomething(i: Int) { println("#$i enter critical sect
案例一:火车站买票思路:1.首先要有一个买票的类BuyTicket多线程要实现Runnable接口,重写run()里面是买票,2.买票就需要有票,定义一个票的变量 private int ticketNums = 10;3.写一个买票的方法buy():首先你得判断是否有票,if(ticketNums<=0),就停止return;4.否则就买票,直接ticketNums--就可以了。谁+拿到+
转载 2023-12-06 22:29:33
75阅读
  • 1
  • 2
  • 3
  • 4
  • 5