hàng đợi DispatchQueue.global là một concurrency queue thì theo em hiểu là các công việc(tasks) sẽ chạy gần như đồng thời nên em hiểu là 3.1 và 4.1 ở 2 hàng đợi sẽ chạy gần như đồng thời .Nếu như anh nói là 3.1 chạy xong rồi mới đến 4.1 vậy thì hàng đợi DispatchQueue.global thể hiện tính concurrency queue ở chỗ nào anh . Mong anh trả lời giúp e ạ?
@duongricky Về cơ bản là sau khi gọi 2 hàm này thì kết quả 2 hàm này là giống nhau.
Nhưng Lang::setLocale là set default locale còn App::setLocale là set current application locale.
Bản chất hàm setLocale gọi từ App cũng sẽ gọi tới setLocale trong Lang, và làm thêm một số việc như change config['app.locale'] và gọi tới event update locale.
DispatchQueue.global(qos: .userInitiated).async {
//3
let data = NSData(contentsOf: URL(string: urlString)!) // 3.1 ( chỉ số này em thêm vào)
DispatchQueue.main.async {
//4
cell?.img.image = UIImage(data: data as! Data) // 4.1
}
}
mà 2 hàng đợi này sẽ chạy đồng thời nhau
cái này là không chính xác em nhé.
Câu lệnh 3.1 là 1 synchronous method, có nghĩ là chương trình sẽ đợi khi 3.1 hoàn toàn kết thúc (load xong ảnh) thì mới chạy sang câu lệnh tiếp theo trong scope (tức là câu lệnh 4.1).
DispatchQueue.global(qos: .userInitiated).async { //3
let data = NSData(contentsOf: URL(string: urlString)!) // 3.1 ( chỉ số này em thêm vào)
DispatchQueue.main.async { //4
cell?.img.image = UIImage(data: data as! Data) // 4.1
}
}
Từ đoạn code trên em có một câu hỏi mà em thắc mắc mãi muốn hỏi anh đó là câu lệnh 3.1 sẽ gán cho hàng đợi DispatchQueue.global để nó thưc hiện và câu lệnh 4.1 sẽ gán cho hàng đợi DispatchQueue.main để thực hiện mà 2 hàng đợi này sẽ chạy đồng thời nhau thì làm sao biết cái ảnh ở câu lệnh 3.1 đã tải xuống thành công hay chưa mà để câu lệnh 4.1 thực hiện a. Mong anh trả lời giúp em ạ.
Chào bạn, cảm ơn bạn vì bài viết rất hay. Nhưng mình có 1 chút thắc mắc mong được bạn giải đáp:
" Mỗi một class hay module ngoài các trường ở trên còn có thêm 2 trường nữa:..." => Không có đề cập tới class method của class, vậy chúng được lưu trữ ở đâu?
"m_tbl: “Method Table”, một bảng băm chứa đựng địa chỉ các instance method của class hay module", vậy là vùng nhớ của cái class kia chỉ có lưu bảng băm chứa ĐỊA CHỈ (dạng như con trỏ). Vậy dữ liệu thực tế của những instance method đó được tổ chức ở đâu? chả lẽ lại tổ chức instance method của 1 class ở 1 vùng nhớ xa xôi nào đó mà không tổ chức trong phạm vi vùng nhớ của class đó sao?
Bài viết này áp dụng cho Swift 3.0.1 (Trong link gốc có viết rõ nhưng chắc người dịch quên) .
Ở Swift 3.0.1 nếu để private thì nó chỉ gọi được trong phạm vi scope (tức là chỉ trong đoạn khai báo class), extension sẽ không gọi được (compile lỗi).
Điều này đã được thay đổi ở Swift 4. nên bạn compile sẽ không còn lỗi nữa =))
Sau khi đọc xong bất kì một tài liệu nào mà không hiểu thì có hai khả năng, một là do người viết, hai là do chính mình.
Nếu bạn tìm thấy bài tiếng Anh gốc thì giỏi đấy.
Có hai cách để học, một là tự học, hai là học từ sách vở hoặc từ người khác ...
Và vì tôn trọng nhau, nên ghi nguồn, dịch thì đã ghi nguồn và nói ngay từ đầu cho khỏe, khỏi nhọc công viết.
Thank for your attention, I was (+1) your comment.
THẢO LUẬN
vậy giờ em chỉ để 1 cái
PATCH
để update thông tin trận đấu, còn chuyển hết ghi tỉ số và public trận đấu thànhPUT
là được đúng không ạ?hàng đợi DispatchQueue.global là một concurrency queue thì theo em hiểu là các công việc(tasks) sẽ chạy gần như đồng thời nên em hiểu là 3.1 và 4.1 ở 2 hàng đợi sẽ chạy gần như đồng thời .Nếu như anh nói là 3.1 chạy xong rồi mới đến 4.1 vậy thì hàng đợi DispatchQueue.global thể hiện tính concurrency queue ở chỗ nào anh . Mong anh trả lời giúp e ạ?
@duongricky Về cơ bản là sau khi gọi 2 hàm này thì kết quả 2 hàm này là giống nhau. Nhưng Lang::setLocale là
set default locale
còn App::setLocale làset current application locale
. Bản chất hàm setLocale gọi từ App cũng sẽ gọi tới setLocale trong Lang, và làm thêm một số việc như change config['app.locale'] và gọi tới event update locale.setLocale gọi từ App.
setLocale gọi từ Lang
Chi tiết hơn bạn vào 2 files sau để tìm hiểu rõ hơn nha.
\Illuminate\Translation\Translator.php
\Illuminate\Foundation\Application.php
@VuXuan Hình như đây bạn nhé
https://success.docker.com/article/multiple-docker-networks
@ledung95d
cái này là không chính xác em nhé.
Câu lệnh 3.1 là 1 synchronous method, có nghĩ là chương trình sẽ đợi khi 3.1 hoàn toàn kết thúc (load xong ảnh) thì mới chạy sang câu lệnh tiếp theo trong scope (tức là câu lệnh 4.1).
Chi tiết em có thể tham khảo thêm trong link tài liệu của Apple https://developer.apple.com/documentation/foundation/nsdata/1407864-init, phần
Discussion
có nêu rõ cách hoạt động và sử dụng của nóCố lằm đến bước cuối cùng nhá . C tin e![✌️](https://twemoji.maxcdn.com/v/14.0.2/72x72/270c.png)
không cho đấy![✌️](https://twemoji.maxcdn.com/v/14.0.2/72x72/270c.png)
Code chán quá. Vừa download thư viện, vừa implement trong Grandle. Nửa vời
Day ko phai la ZXing chinh chu.
DispatchQueue.global(qos: .userInitiated).async { //3 let data = NSData(contentsOf: URL(string: urlString)!) // 3.1 ( chỉ số này em thêm vào) DispatchQueue.main.async { //4 cell?.img.image = UIImage(data: data as! Data) // 4.1 } }
Từ đoạn code trên em có một câu hỏi mà em thắc mắc mãi muốn hỏi anh đó là câu lệnh 3.1 sẽ gán cho hàng đợi DispatchQueue.global để nó thưc hiện và câu lệnh 4.1 sẽ gán cho hàng đợi DispatchQueue.main để thực hiện mà 2 hàng đợi này sẽ chạy đồng thời nhau thì làm sao biết cái ảnh ở câu lệnh 3.1 đã tải xuống thành công hay chưa mà để câu lệnh 4.1 thực hiện a. Mong anh trả lời giúp em ạ.
Cho e hỏi Lang::setLocale(Session::get('locale')) tương tự như App::setLocale(Session::get('locale')) phải k ạ
cảm ơn bài viết của bạn, nhưng phần fix lỗi ở phần 2 câu lệnh "var self = this" bạn phải bặt bên ngoài forEach() bên trong showTarget()
Mỗi lần sửa trong component lại phải rundev lại mất thời gian quá, có cách nào k anh.![😄](https://twemoji.maxcdn.com/v/14.0.2/72x72/1f604.png)
một container được attached vào 2 network.
Bạn có thể dẫn link cho mình tài liệu nói về điều này không ?
Không phải minh_dai nhé. <T> được hiểu là phương thức này có một tham số kiểu T.
Chào bạn, cảm ơn bạn vì bài viết rất hay. Nhưng mình có 1 chút thắc mắc mong được bạn giải đáp:
" Mỗi một class hay module ngoài các trường ở trên còn có thêm 2 trường nữa:..." => Không có đề cập tới class method của class, vậy chúng được lưu trữ ở đâu?
"m_tbl: “Method Table”, một bảng băm chứa đựng địa chỉ các instance method của class hay module", vậy là vùng nhớ của cái class kia chỉ có lưu bảng băm chứa ĐỊA CHỈ (dạng như con trỏ). Vậy dữ liệu thực tế của những instance method đó được tổ chức ở đâu? chả lẽ lại tổ chức instance method của 1 class ở 1 vùng nhớ xa xôi nào đó mà không tổ chức trong phạm vi vùng nhớ của class đó sao?
Cảm ơn bạn.
ừa, sorry =))
Bài viết này áp dụng cho
Swift 3.0.1
(Trong link gốc có viết rõ nhưng chắc người dịch quên) .Ở Swift 3.0.1 nếu để private thì nó chỉ gọi được trong phạm vi scope (tức là chỉ trong đoạn khai báo class), extension sẽ không gọi được (compile lỗi). Điều này đã được thay đổi ở
Swift 4.
nên bạn compile sẽ không còn lỗi nữa =))@daotran
Anh @thangtd90 đã trả lời giúp mình rồi nhé, bài viết này mình cũng học hỏi rất nhiều từ anh ấy.
Sau khi đọc xong bất kì một tài liệu nào mà không hiểu thì có hai khả năng, một là do người viết, hai là do chính mình.
Nếu bạn tìm thấy bài tiếng Anh gốc thì giỏi đấy.
Có hai cách để học, một là tự học, hai là học từ sách vở hoặc từ người khác ... Và vì tôn trọng nhau, nên ghi nguồn, dịch thì đã ghi nguồn và nói ngay từ đầu cho khỏe, khỏi nhọc công viết.
Thank for your attention, I was (+1) your comment.