import 'dart:isolate';
import 'dart:math';
void main() async {
Stopwatch stopwatch = Stopwatch()..start(); // 시간 측정 시작
print('메인 Isolate에서 주식 데이터 처리 시작');
ReceivePort receivePort = ReceivePort();
// Isolate를 생성하고, 주식 데이터 처리 작업을 위임합니다.
await Isolate.spawn(processStockData, receivePort.sendPort);
// Isolate로부터 결과를 받습니다.
receivePort.listen((processedData) {
print('처리된 주식 데이터: $processedData');
// 필요한 경우 여기서 UI 업데이트 등의 작업을 수행할 수 있습니다.
print('주식 데이터 처리 시간: ${stopwatch.elapsed}'); // 시간 측정 종료 및 출력
stopwatch.stop();
});
}
// 주식 데이터를 가져오는 함수를 모방합니다.
List<double> fetchStockData() {
final random = Random();
return List.generate(365, (_) => random.nextDouble() * 100);
}
// Isolate에서 실행될 주식 데이터 처리 함수입니다.
void processStockData(SendPort sendPort) {
List<double> stockData = fetchStockData();
double averagePrice = stockData.reduce((a, b) => a + b) / stockData.length;
sendPort.send(averagePrice);
}
Last active
February 27, 2024 04:51
-
-
Save kipsong133/d811d7a9d6cd2693c4303a33441d4a08 to your computer and use it in GitHub Desktop.
에제 3번
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment