Volatile là không đủ nếu trong trường hợp nhiều Thread cùng ĐỌC và GHI dữ liệu vào Main Memory. Lúc này cần phải sử dụng Synchornized để đảm bảo tính đồng bộ
As I have mentioned earlier, if two threads are both reading and writing to a shared variable, then using the volatile keyword for that is not enough. You need to use a synchronized in that case to guarantee that the reading and writing of the variable is atomic. Reading or writing a volatile variable does not block threads reading or writing. For this to happen you must use the synchronized keyword around critical sections.
@tomhagen Theo mình thấy cách bạn deploy có vẻ không ổn lắm. Thông thường thì bạn sẽ dev trên máy tính cá nhân của bạn đã. Sau này khi code thêm tính năng và bạn muốn deploy lên server DO thì bạn có 2 cách một là ssh vào server và tự chạy các thao tác bằng tay hoặc cách hai là bạn tìm hiểu về autodeploy. Với cả 2 cách thì bạn nên làm như sau:
Bên NodeJS bạn nên ignore trong folder /public đi vì nội dung trong folder này là thuộc về bên React.
Mỗi lần deploy bạn cần xác định rõ là deploy NodeJS hay cho bên React hay cả hai:
Nếu deploy cho phần NodejS thì bạn chỉ cần ssh thực hiện pull code của NodeJS thôi bỏ qua bên React.
Deploy React thì bạn cũng tương tự ssh vào server, thực hiện pull code React sang một folder khác và build bên folder đó. Sau khi build xong thì bạn thực hiện symlink folder nội dung folder build đó và folder public bên NodeJS
Còn nếu deploy cả hai thì bạn thực hiện lần lượt các bước như trên
Chứ bạn không nên build sau đỏ bỏ vào folder public bên NodeJS push lên Github như hiện tại. Còn để nhanh hơn thì bạn nên tìm hiểu về autodeploy nhé.
[Solved]
Chạy được rồi bạn ơi, đúng như bạn nói trong folder public không có js và css, không hiểu sao mình copy thiếu. Mình vào git clone lại là nó chạy.
Cho mình hỏi, làm sao để mỗi lần sửa lại view với React, thì instance trên Ubuntu tự biết mà cập nhật lại được nhỉ ?
Bây giờ thao tác mình làm mỗi lần sửa lại view là:
Sau khi cập nhật view --> npm run build
Lấy nội dung build được bỏ vào folder public bên Nodejs
Git push đẩy lên github
Chưa biết làm gì tiếp theo để nó cập nhật lên instance đc, git clone không được nữa. Nếu muốn git clone thì mình phải xóa .git đi rồi mới thao tác đc.
Không biết có cách config hay cách nào làm nhanh vụ này không bạn? Cảm ơn bạn hỗ trợ rất nhiều.
@tomhagen mình ko có teamview nhé bạn nhưng nhìn vào folder public của bạn thì mình không thấy phần js, css đâu cả bạn có chắc đó là folder build từ React không vậy ?
Cảm ơn bạn nhiều. Thực tế thì không có cách nào gọi là "dịch trực tiếp" đâu bạn các ngôn ngữ khác không chỉ NextJS với React hay VueJS hay thậm chí bên server đều phải sử dụng cách mà bạn nói trên là chuyển nội dung dịch vào các file rồi gọi ra nhé.
THẢO LUẬN
ffffffffff
fadfdfa
adfadfa
sdsedf
upvoted... ^^
Volatile là không đủ nếu trong trường hợp nhiều Thread cùng ĐỌC và GHI dữ liệu vào Main Memory. Lúc này cần phải sử dụng Synchornized để đảm bảo tính đồng bộ
link server tách nhạc thì hỏng link github thì ko có readme, chạy thế nào cũng ko đc cái demo nhạc sơn tùng gì đó cũng set private luôn @@!
@tomhagen Theo mình thấy cách bạn deploy có vẻ không ổn lắm. Thông thường thì bạn sẽ dev trên máy tính cá nhân của bạn đã. Sau này khi code thêm tính năng và bạn muốn deploy lên server DO thì bạn có 2 cách một là ssh vào server và tự chạy các thao tác bằng tay hoặc cách hai là bạn tìm hiểu về
autodeploy
. Với cả 2 cách thì bạn nên làm như sau:NodeJS
bạn nên ignore trong folder/public
đi vì nội dung trong folder này là thuộc về bênReact
.NodeJS
hay cho bênReact
hay cả hai:NodejS
thì bạn chỉ cần ssh thực hiện pull code củaNodeJS
thôi bỏ qua bênReact
.React
thì bạn cũng tương tự ssh vào server, thực hiện pull codeReact
sang một folder khác và build bên folder đó. Sau khi build xong thì bạn thực hiệnsymlink
folder nội dung folder build đó và folderpublic
bênNodeJS
deploy
cả hai thì bạn thực hiện lần lượt các bước như trênChứ bạn không nên build sau đỏ bỏ vào folder public bên
NodeJS
push lên Github như hiện tại. Còn để nhanh hơn thì bạn nên tìm hiểu về autodeploy nhé.[Solved] Chạy được rồi bạn ơi, đúng như bạn nói trong folder public không có js và css, không hiểu sao mình copy thiếu. Mình vào git clone lại là nó chạy. Cho mình hỏi, làm sao để mỗi lần sửa lại view với React, thì instance trên Ubuntu tự biết mà cập nhật lại được nhỉ ? Bây giờ thao tác mình làm mỗi lần sửa lại view là:
Không biết có cách config hay cách nào làm nhanh vụ này không bạn? Cảm ơn bạn hỗ trợ rất nhiều.
Bạn chuyển qua xác thực bằng tin nhắn sẽ được nhé )
Bạn thử thêm vào nginx xem sao
@tomhagen mình ko có teamview nhé bạn nhưng nhìn vào folder public của bạn thì mình không thấy phần js, css đâu cả bạn có chắc đó là folder
build
từ React không vậy ?à, không bạn. Ngoặc nhọn mình đã thêm vào mới nãy rồi nhưng vẫn không được ấy.
Nếu được bạn teamview giúp mình với, mình loay hoay vụ này mãi mà không đc. (( id: 1 398 578 563 pass: x49vj4
Cảm ơn bạn.
@tomhagen à nó bị thiếu ngoặc nhọn bạn ạ:
Mình đã sửa lại nội dung như hướng dẫn nhưng vẫn không được bạn ơi, chạy lệnh reload lại nginx báo lỗi.
Bạn có thể teamview giúp mình được không, mấy cái này mình không có kiến thức gì mấy về nó. Cảm ơn bạn.
@tomhagen bạn thử sửa lại nội dung file
my-site.conf
thành như sau xem:Cảm ơn anh nhé! Bài rất ổn đấy!
Test vẫn không được bạn ơi, ca này căng quá ((
Cảm ơn bạn nhiều. Thực tế thì không có cách nào gọi là
"dịch trực tiếp"
đâu bạn các ngôn ngữ khác không chỉNextJS
với React hay VueJS hay thậm chí bên server đều phải sử dụng cách mà bạn nói trên là chuyển nội dung dịch vào các file rồi gọi ra nhé.@tomhagen bạn bị sai đường dẫn rồi, bạn
cd
vào trong folder public kia rồi gõ lệnhpwd
để lấy được đúng đường dẫn nhé