麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

線程系列03,多線程共享數據,多線程不共享數據

2019-11-17 02:52:43
字體:
來源:轉載
供稿:網友

線程系列03,多線程共享數據,多線程不共享數據

多線程編程,有時希望每個線程的數據相互隔離互不影響,有時卻希望線程間能共享數據,并保持同步。本篇體驗多線程共享和不共享數據。

□ 多線程不共享數據

對于多線程,CLR到底是怎樣為它們分配內存棧空間呢?是"一個蘿卜一個坑",每個線程都有自己的棧空間;還是"大樹底下好乘涼",所有的線程共享同一個棧空間?

我們讓2個線程執行相同的靜態方法,用到相同的變量,通過打印變量來求證多線程棧空間的分配情況。

    class PRogram
    {
        static void Main(string[] args)
        {
            new Thread(SayHi).Start();
            SayHi();
        }
        static void SayHi()
        {
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine("我是線程#" + Thread.CurrentThread.ManagedThreadId + "這是我的第" +i+  "次說hello");
            }
        }
    }

6

雖然2個線程交叉執行,但都說了4次的hello。說明CLR為2個線程都分配了棧空間,變量i在各自的棧空間中相互不受影響。

7

□ 多線程共享數據

線程間是需要相互合作的,多個線程如何共享數據呢?

※ 共享實例變量

讓2個線程執行同一個實例方法,看看是否可以共享對象實例的公共字段。

using System;
using System.Threading;
namespace Consoleapplication1
{
    class Program
    {
        public int whatever;
        static void Main(string[] args)
        {
            Program p = new Program();
            new Thread(p.PrintVariable).Start();
            p.PrintVariable();
        }
        void PrintVariable()
        {
            whatever++;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 免费观看视频网站 | 国产黄网 | 国产一级αv片免费观看 | 99r国产精品 | 欧美一级做性受免费大片免费 | 69av导航 | 成人毛片免费播放 | 国产二区三区视频 | 极色品影院 | 欧美a视频在线观看 | 久久久鲁 | 日本中文字幕高清 | 国产一级一国产一级毛片 | 欧美色性 | 在线观看精品视频 | 成年人性视频 | 国产精品久久久久久模特 | 在线亚洲免费 | 爱看久久 | 99精品视频久久精品视频 | 久久成人免费观看 | 亚洲视频在线网 | 欧美精品久久久久久久多人混战 | 日本在线看片 | 爱看久久 | 日本xxxx视频 | 国产一区视频免费观看 | 蜜桃传媒视频麻豆第一区免费观看 | 一本视频在线观看 | 国产乱一区二区三区视频 | 日日鲁夜夜视频热线播放 | 成人短视频在线观看免费 | 成年人免费视频大全 | 免费网站看v片在线a | 特级黄色影院 | 亚洲午夜一区二区三区 | 精品久久久久久久 | 国产午夜小视频 | 91短视频版高清在线观看免费 | 中文字幕在线观看视频一区 | 久久精品亚洲精品国产欧美kt∨ |