協(xié)程 協(xié)程是輕量級線程搜骡,一個線程中可以有很多協(xié)程凌外,協(xié)程本質(zhì)上可以認為是運行在線程上的代碼塊,協(xié)程提供的掛起操作會使協(xié)程暫停執(zhí)行赎婚,而不會導致線程阻塞刘绣。協(xié)程的實現(xiàn)大多都在編譯器操...
協(xié)程 協(xié)程是輕量級線程搜骡,一個線程中可以有很多協(xié)程凌外,協(xié)程本質(zhì)上可以認為是運行在線程上的代碼塊,協(xié)程提供的掛起操作會使協(xié)程暫停執(zhí)行赎婚,而不會導致線程阻塞刘绣。協(xié)程的實現(xiàn)大多都在編譯器操...
2023-01-13T11:00:52.573 start:0
2023-01-13T11:00:52.574-> pool-1-thread-1開始讀取文件 0
2023-01-13T11:00:53.151-> pool-1-thread-1結(jié)束讀取文件0,文件大小為:535M挣输,使用時間為:577
.
2023-01-13T11:00:53.151 end:0
2023-01-13T11:00:53.152 start:1
2023-01-13T11:00:53.152-> pool-1-thread-1開始讀取文件 1
2023-01-13T11:00:53.670-> pool-1-thread-1結(jié)束讀取文件1纬凤,文件大小為:535M,使用時間為:518
.
2023-01-13T11:00:53.670 end:1
2023-01-13T11:00:53.670 start:2
2023-01-13T11:00:53.670-> pool-1-thread-1開始讀取文件 2
2023-01-13T11:00:54.177-> pool-1-thread-1結(jié)束讀取文件2撩嚼,文件大小為:535M停士,使用時間為:507
.
2023-01-13T11:00:54.177 end:2
2023-01-13T11:00:54.177 start:3
2023-01-13T11:00:54.177-> pool-1-thread-1開始讀取文件 3
2023-01-13T11:00:54.690-> pool-1-thread-1結(jié)束讀取文件3,文件大小為:535M完丽,使用時間為:513
.
2023-01-13T11:00:54.690 end:3
2023-01-13T11:00:54.690 start:4
2023-01-13T11:00:54.690-> pool-1-thread-1開始讀取文件 4
2023-01-13T11:00:55.194-> pool-1-thread-1結(jié)束讀取文件4恋技,文件大小為:535M,使用時間為:503
.
2023-01-13T11:00:55.194 end:4
這是打印的數(shù)據(jù)
kotlin協(xié)程的使用與原理協(xié)程 協(xié)程是輕量級線程逻族,一個線程中可以有很多協(xié)程蜻底,協(xié)程本質(zhì)上可以認為是運行在線程上的代碼塊,協(xié)程提供的掛起操作會使協(xié)程暫停執(zhí)行聘鳞,而不會導致線程阻塞薄辅。協(xié)程的實現(xiàn)大多都在編譯器操...
fun main(){
f()
}
fun f() = runBlocking {
//創(chuàng)建自定義線程池
val coroutineDispatcher = Executors.newFixedThreadPool(1).asCoroutineDispatcher()
repeat(5) { // 啟動大量的協(xié)程
launch(coroutineDispatcher) {
println("${LocalDateTime.now()} start:${it}")
readFile(it)
println(".")
println("${LocalDateTime.now()} end:${it}")
}
}
}
private fun readFile(i:Int): Long {
val start = System.currentTimeMillis()
println("${LocalDateTime.now()}-> ${Thread.currentThread().name}開始讀取文件 ${i}")
val path = "/Users/pjgao/IdeaProjects/data/gldrawable${i}.zip"
val file = File(path)
val readBytes = file.readBytes()
val fileSize = readBytes.size / 1024 / 1024
//val fileSize = 0
val useTime = System.currentTimeMillis() - start
println("${LocalDateTime.now()}-> ${Thread.currentThread().name}結(jié)束讀取文件${i},文件大小為:${fileSize}M抠璃,使用時間為:$useTime")
return useTime
}
這是測試代碼
kotlin協(xié)程的使用與原理協(xié)程 協(xié)程是輕量級線程站楚,一個線程中可以有很多協(xié)程,協(xié)程本質(zhì)上可以認為是運行在線程上的代碼塊搏嗡,協(xié)程提供的掛起操作會使協(xié)程暫停執(zhí)行源请,而不會導致線程阻塞。協(xié)程的實現(xiàn)大多都在編譯器操...
這邊有個 關(guān)于協(xié)程 彻况,對io操作的疑惑谁尸。我這邊自定義一個分發(fā)器。底層是單個固定線程的線程池纽甘。然后基于這個分發(fā)器開多個協(xié)程 去讀取文件良蛮。發(fā)現(xiàn)讀取的時間還是相當于一個個讀的時間,并沒有并發(fā)的效果悍赢。按前面 “關(guān)于IO操作” 的說法决瞳,應該對于多個文件是可以做到并發(fā)讀的效果?
kotlin協(xié)程的使用與原理協(xié)程 協(xié)程是輕量級線程左权,一個線程中可以有很多協(xié)程皮胡,協(xié)程本質(zhì)上可以認為是運行在線程上的代碼塊,協(xié)程提供的掛起操作會使協(xié)程暫停執(zhí)行赏迟,而不會導致線程阻塞屡贺。協(xié)程的實現(xiàn)大多都在編譯器操...
Java JVM及相關(guān)概念1泻仙、概述 JVM是Java Virtual Machine(Java虛擬機)的縮寫,是一種用于計算設(shè)備的規(guī)范量没,它是一個虛構(gòu)出來的計算機玉转,是通過在實際的計算機上仿真模擬各種計算...
1、概述 OOP(Object-oriented programming),指面向?qū)ο蟪绦蛟O(shè)計殴蹄。也是目前主流的程序設(shè)計思想究抓。這邊討論下由Robert C. Martin在21...
1、概述 前面幾篇關(guān)于OpenGLES的文章: OpenGL ES 2.0 顯示圖形(上) OpenGL ES 2.0 顯示圖形(下) OpenGL ES 3.0(一)綜述 ...
國內(nèi)的手機要去應用市場下個ARCore組件才行袭灯。
ARCore 使用Sceneform 創(chuàng)建ARApp1漩蟆、概述 在前面一篇文章 ARCore相關(guān) 里已經(jīng)討論過一些關(guān)于AR 和ARCore的概念了,并基于OpenGL ES實現(xiàn)了一個ARApp 的demo妓蛮。OpenGL ES是內(nèi)...
1怠李、概述 前面幾篇關(guān)于OpenGLES的文章: OpenGL ES 2.0 顯示圖形(上) OpenGL ES 2.0 顯示圖形(下) OpenGL ES 3.0(一)綜述 ...
@lllaa 看你這提示是這個glutInit已經(jīng)在mac OS10.9 版本以后被棄用了啊。
OpenGL ES 3.0(五)坐標系1蛤克、概述 前面幾篇關(guān)于OpenGLES的文章: OpenGL ES 2.0 顯示圖形(上) OpenGL ES 2.0 顯示圖形(下) OpenGL ES 3.0(一)綜述 ...
1捺癞、概述 前面幾篇關(guān)于OpenGLES的文章: OpenGL ES 2.0 顯示圖形(上) OpenGL ES 2.0 顯示圖形(下) OpenGL ES 3.0(一)綜述 ...
1、概述 前面幾篇關(guān)于OpenGLES的文章: OpenGL ES 2.0 顯示圖形(上) OpenGL ES 2.0 顯示圖形(下) OpenGL ES 3.0(一)綜述 ...
1构挤、概述 前面幾篇文章OpenGL ES 3.0(一)綜述 髓介、OpenGL ES 3.0(二)GLSL與著色器 討論到可以為每個頂點添加顏色來增加圖形的細節(jié),從而創(chuàng)建出有趣的...
1筋现、概述 在上一篇文章OpenGL ES 3.0(一)綜述 中提到唐础,著色器(Shader)是運行在GPU上的小程序。這些小程序為圖形渲染管線的某個特定部分而運行矾飞。從本質(zhì)上來說...
1一膨、概述 傳統(tǒng)的流IO對于大部分的IO場景, 能適應的比較好。但是, 由于它的阻塞性, 也就是說每一個流的讀寫都需要占用一個線程洒沦。這意味著, 流IO的可伸縮性很差豹绪。因此, 就...