異なる言語のコラボレーションの例
1499 ワード
プロセスとスレッド、コヒーレンスの違いasync関数の意味と使い方上の2つの文章では、プロセス、スレッド、コヒーレンス、javascriptにおけるコヒーレンスの簡単な使い方を紹介します.最近では,python,kotlin,javascript,goにそれぞれ言語を用いて開発され,コラボレーションが用いられている.例を別の言語に分けて書くつもりです.
javascript
以上のように、
python
kotlin:
一時停止関数:
Androidのanko実装ライブラリ:
javascript
const Coroutine = () => {
return (
);
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
const click_button = async() => {
console.log('Taking a break...');
await sleep(2000);
console.log('Two second later');
}
以上のように、
async await
で実装されたjavascriptを用いたsleep
の簡単な方法である.python
async def compute(x, y):
print("Compute %s + %s ..." % (x, y))
await asyncio.sleep(1.0)
return x + y
async def print_sum(x, y):
result = await compute(x, y)
print("%s + %s = %s" % (x, y, result))
return result
if __name__ == '__main__':
loop = asyncio.get_event_loop()
result = loop.run_until_complete(print_sum(1, 2))
loop.close()
print(result)
kotlin:
一時停止関数:
suspend fun mySuspendingFun(x: Int) : Result {
…
}
async {
val res = mySuspendingFun(20)
print(res)
}
Androidのanko実装ライブラリ:
async(UI) {
val r1 = bg { fetchResult1() }
val r2 = bg { fetchResult2() }
updateUI(r1.await(), r2.await())
}