小编Rus*_*one的帖子

Rust的内存管理会导致内存碎片吗?

Rust编程语言的自动内存管理是否需要回收碎片内存?如果是这样,它是如何做到的?

我的理解是,它的类型系统(所有制类型,借款Rc,Arc)允许其确定性在编译时知道什么时候分配的内存块可以被释放.

但是,内存块是否可能在一个订单中分配,并以不同的顺序释放,从而导致碎片?如果这被阻止了,怎么样?如果确实发生了这种情况,那么如何有效地管理内存片段?如果他们进行碎片整理,那么使用的方法是什么?

memory-management rust

21
推荐指数
2
解决办法
2342
查看次数

如何在使用当前父级Scope的“悬浮乐趣”中启动Kotlin协程?

如何从暂停功能启动协程并使其使用当前的示波器?(这样,直到启动的协程也结束,作用域才结束)

我想写类似下面的内容–

import kotlinx.coroutines.*

fun main() = runBlocking { // this: CoroutineScope
    go()
}

suspend fun go() {
    launch {
        println("go!")
    }
}
Run Code Online (Sandbox Code Playgroud)

但这有一个语法错误:“未解决的参考:启动”。似乎launch必须以下列方式之一运行-

GlobalScope.launch {
    println("Go!")
}
Run Code Online (Sandbox Code Playgroud)

要么

runBlocking {
    launch {
        println("Go!")
    }
}
Run Code Online (Sandbox Code Playgroud)

要么

withContext(Dispatchers.Default) {
    launch {
        println("Go!")
    }
}
Run Code Online (Sandbox Code Playgroud)

要么

coroutineScope {
    launch {
        println("Go!")
    }
}
Run Code Online (Sandbox Code Playgroud)

这些替代方法都不能满足我的需求。代码要么“阻塞”而不是“产生”,要么产生,但是父作用域在父作用域本身结束之前不会等待其完成。

我需要它在当前的父协程作用域中“生成”(启动),并且该父作用域应等待所生成的协程完成,然后结束自身。

我希望a launch内的简单内容suspend fun有效并使用其父范围。

我正在使用Kotlin 1.3cotlinx-coroutines-core:1.0.1

kotlin kotlinx.coroutines

9
推荐指数
2
解决办法
1181
查看次数

Haskell可以有哪些运行时错误?

我已经读过Haskell实际上可以有运行时错误,尽管是静态类型和功能.但是,没有人说什么那些可能是运行时错误.谁知道?

haskell runtime-error

2
推荐指数
1
解决办法
1231
查看次数